【问题标题】:Wordpress: Show post if it is in two specific categoriesWordpress:如果帖子属于两个特定类别,则显示帖子
【发布时间】:2011-11-13 17:44:58
【问题描述】:

我正在尝试让 Wordpress 博客的索引页显示一些非常具体的帖子。据我了解,我需要使用标准循环才能使粘性帖子起作用,因此自定义查询是不可能的。 (如果有错请指正。)

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

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

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

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

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

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

【问题讨论】:

    标签: wordpress loops filter categories if-statement


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-03
      • 1970-01-01
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      相关资源
      最近更新 更多