【问题标题】:Wordpress: filter posts by category in pages NOT WORKING?Wordpress:在页面中按类别过滤帖子不起作用?
【发布时间】:2014-11-07 14:37:06
【问题描述】:

3 多天以来,我一直在尝试按我的 wordpress 主题上的某些类别过滤某些博客页面中的帖子:“Grafika”。例如:我创建了一个名为“朋友”的博客页面,之后我创建了一个名为“朋友”,然后我创建了 5 个帖子,并将“朋友”类别分配给这 5 个帖子。如何在“朋友”页面上执行此操作以仅显示“朋友”类别中的帖子。当前页面显示所有我所有页面的博文。

我尝试了很多插件,query_posts,query_args,页面中的快捷代码,修改模板。 实际上我只有 1 个插件几乎解决了我的问题。它被称为“wp 帖子过滤器”的插件。但它不能完全工作。这个插件的问题是我正在为主页应用过滤器并且该过滤器转到我所有的页面,无论对于其他页面,我都应用了不同的过滤器。这是插件链接:here

有人可以给我一个真正有效的解决方案来按页面上的类别过滤帖子显示吗?非常感谢您的阅读!

【问题讨论】:

    标签: php wordpress filter categories posts


    【解决方案1】:

    在您主题的functions.php 文件中,我们可以使用pre_get_posts 函数在页面加载之前更改查询。

    function my_friends_category( $query ) {
        if ( $query->is_page('friends')):
            $query->set( 'cat', 'friends' );
        endif;
    }
    add_action( 'pre_get_posts', 'my_friends_category' );
    

    假设您的页面名称为friends,否则将其替换为页面的id

    【讨论】:

    • 我刚刚尝试了您的修复,但没有成功。这是我的页面:zigzagprinromania.com/blog/?page_id=214。请检查此屏幕截图:prntscr.com/4mfv1f。我只想在该页面上显示标有“V”标志的帖子。带有“V”标志的帖子属于名为“parteneri”的类别。这是我的页面模板:@ 987654323@
    • 我尝试了这样的代码: [code] function my_friends_category( $query ) { if ( $query->is_page('214')): $query->set( 'cat', '合作伙伴');万一; } add_action('pre_get_posts', 'my_parteneri_category'); [代码]。其中 214 是页面的 ID,“parteneri”是我希望显示我的帖子的类别。
    • @ConstantinFlorinMinea 您将 add_action 查找的函数名称更改为my_parteneri_category,但您没有将函数名称更改为my_parteneri_category($query).....请重试。跨度>
    • 我的错,好吧,我刚刚纠正了它,它看起来像下面的截图:prntscr.com/4mg22o。但它仍然不起作用。请查看我的页面模板并查找 html 评论至极说:下面的代码是在页面上显示我的帖子的代码...我的页面模板:pastebin.com/aK3csGMN
    【解决方案2】:
    1. 为您的博客创建一个新的custom page template
    2. 在此页面上创建自定义循环http://pastebin.com/bRLhpGzC
    3. 将页面模板更改为您创建的模板,http://imgur.com/4VTpyMw

    【讨论】:

    • 这是我的页面模板:pastebin.com/tqb2x2RK。我应该如何修改它?
    • 我相信 get_template_part( 'loop', 'index' ); 之前的这个注释部分是您应该用 MY pastebin 中第 16 到 23 行的代码替换的地方,取消注释 get_template_part 函数,以便您可以实际将内容呈现到屏幕上
    • 尝试删除加载您不想要的帖子的代码段
    • 我试过了,请看结果:prntscr.com/4mgt4u。这是我的页面在不删除该 data-path="...: prntscr.com/4mgter 的情况下的样子(这就是我想要的看,每行 5 个帖子)但在这种情况下,过滤器类别不起作用(显示所有帖子),如果我删除那个小代码,我的页面就是这样的:prntscr.com/4mguf0(在这个屏幕截图上,类别过滤器有效,但我不喜欢每行 3 个帖子的样式表)。一些建议?
    • 您可以使用 css 解决每行 3 个帖子的问题,或者查看循环文件。无论哪种情况,它都不再与这个问题相关。我知道你的问题解决了吗?您现在正在加载按您想要的方式过滤的帖子,现在您需要解决布局问题。
    猜你喜欢
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    相关资源
    最近更新 更多