查询“A类”+1条来自“B类”的帖子--如何查询?

时间:2013-04-16 作者:Paul

从一个类别查询帖子很容易,但如果我还需要从另一个类别查询一篇帖子呢?

$query = new WP_Query( \'cat=4\' );
我在找这样的东西:

$query = new WP_Query( array( \'cat\' => 4, \'post__in\' => array( 20 ) ) );
但是上面的代码不会返回任何内容,因为类别4中没有ID为20的帖子。我想知道是否有人知道如何做到这一点。

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

我看不出有什么办法WP_Query 单独地然而

function posts_where_add_post_wpse_96030($where) {
  global $wpdb;
  return $where." OR {$wpdb->posts}.ID = 1";
}
add_filter(\'posts_where\',\'posts_where_add_post_wpse_96030\');
$query = new WP_Query( \'cat=9\' );
这将改变查询运行的所有位置,因此您需要向回调中添加条件,以便$where 只在你想要的地方改变。例如

function posts_where_add_post_wpse_96030($where) {
  global $wpdb;
  if (is_home()) {
    $where .= " OR {$wpdb->posts}.ID = 1";
  }
  return $where; 
}
现在,只有当查询运行在is_home 是真的。我不知道你需要什么条件。你的问题中没有包括这一点,所以你必须自己解决。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post