【发布时间】: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