2014-09-13 150 views
0

超过3天,我正在尝试在过滤某些类别的某些博客网页上的帖子我的wordpress主题:“Grafika”。例如:我创建了一个名为“朋友”一个博客页面,在那之后我创建了一个名为“朋友的类别“之后,我创建了5个帖子,并为这5个帖子分配了”朋友“类别。如何在”朋友“页面上执行此操作,以仅显示”朋友“类别中的帖子。目前该页面显示所有我的来自所有页面的博客帖子。Wordpress:按页面中的类别过滤未发布的帖子?

我已经尝试了很多很多的插件,query_posts,query_args,快捷的代码页,修改模板。 其实我只有一个插件几乎可以解决我的问题。它被称为“wp帖子过滤器”的插件。但它并没有完全工作。这个插件的问题是,我正在为主页应用一个过滤器,我的所有网页,无论是其他网页我申请不同的filters.This是插件链接:here

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

回答

3
  1. 为您的博客
  2. custom page template创建此页面http://pastebin.com/bRLhpGzC
  3. 改变页面模板来创建的一个上定制循环,http://imgur.com/4VTpyMw
+0

这是我的页面模板:http://pastebin.com/tqb2x2RK。我应该如何修改它? – 2014-09-13 16:10:50

+0

我相信'get_template_part('loop','index')''之前的注释部分应该替换为MY pastebin中第16至23行的代码,取消注释get_template_part函数以便实际呈现内容屏幕 – igrossiter 2014-09-13 16:16:16

+0

我想你的解决方案,但有一个问题:http://prntscr.com/4mg9gf – 2014-09-13 16:39:48

0

在你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更换。

+0

我只是想你修复,但它没有工作。这是我的页面:http://www.zigzagprinromania.com/blog/?page_id=214。请检查此屏幕截图:http://prntscr.com/4mfv1f。我想在该页面上仅显示标有“V”标志的帖子。带有“V”标志的帖子属于名为“parteneri”的类别。是我的页面模板:http://pastebin.com/tqb2x2RK – 2014-09-13 16:05:04

+0

我想你这样的代码:[代码]功能my_friends_category($查询){ 如果($查询 - > is_page( '214')): $查询 - > set('cat','parteneri'); endif; } add_action('pre_get_posts','my_parteneri_category'); [代码]。其中214是页面的ID,“parteneri”是我希望显示帖子的类别。 – 2014-09-13 16:07:27

+0

@ConstantinFlorinMinea您将add_action查找的函数的名称更改为'my_parteneri_category',但您没有将函数名称更改为'my_parteneri_category($ query)'.....请再试一次。 – Ohgodwhy 2014-09-13 16:10:04

相关问题