Wordpress:显示帖子是否属于两个特定类别

时间:2011-09-09 11:47:14

标签: wordpress loops filter categories if-statement

我试图让Wordpress博客的索引页面显示一些非常具体的帖子。据我所知,我需要使用标准循环才能使粘性帖子工作,因此自定义查询是不可能的。 (如果这是错误的,请纠正我。)

所有帖子都放在一个主要类别中(例如“化妆”)此外,应该在首页上显示的帖子会获得一个额外的类别“Frontpage”。

当前循环输出所有帖子,无论类别如何。并且某些类别的样式不同。一个例子是视频类别,它只通过从帖子中的自定义字段获取嵌入代码来显示。

 <?php elseif (in_category('20')) : ?>     
 <div class="post element grid_4">
 <?php echo get_post_meta($post->ID, 'Embed', true) ?>
 </div>

我需要删除不在“Frontpage”类别中的所有帖子,同时仍然可以控制帖子的显示方式。

之前我使用过滤器来控制主循环:

function exclude_category($query) {
if ( $query->is_home ) {
$query->set('cat', '20 27');
}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');

然而,这会导致我的geomashup-plugin中断,因为它可能使用相同的循环?

我目前提出的解决方案建议是做这样的事情,加上有效的代码:

 <?php elseif (the post is in BOTH category 20 and 27)) : ?>     
 <div class="post element grid_4">
 <?php echo get_post_meta($post->ID, 'Embed', true) ?>
 </div>

 <?php else : ?>     
 <div style: display: none;></div>

然而,我不确定如何使一个条件要求该帖子分为两类,我意识到这是一个非常脏的修复。

关于如何解决这个问题的任何提示或指示将非常感激:)

首页可以在这里看到:http://parfymelle.brandbase.no

1 个答案:

答案 0 :(得分:0)

对于任何想通过在主循环的过滤器中包含地理标记的帖子类别(商店位置)来解决它的人,然后在index.php中使用php if来隐藏该类别的帖子。肮脏,但我认为有效。