如何查询没有共同之处的帖子?

时间:2012-07-27 作者:sergio

我们可以在一个页面中手动获取多个帖子,但这是在默认查询返回其他内容(页面/帖子等)后在模板中生成的

如何在公共查询中查询多个不共享分类法或其他任何内容的帖子?

e、 g.按ID:

http://example.com/?p=23,18,2,199,6,8
我已经在解析页面名称中的变量了。php模板,但一旦获得模板,就太晚了,无法生成规范。

我想这与搜索类似,只是搜索是一个1对多帖子的关系,这需要对唯一帖子进行多个查询(每个)。

谢谢

2 个回复
SO网友:vmassuchetto

也许你在找post__in 中的参数WP_Query.

$query = new WP_Query(array(
    \'post__in\' => array(23,18,2,199,6,8)
);
然后:

while ( $query->have_posts() ) {
    $query->the_post();
    /* post loop */
}
看看docs. =D

对于公共查询:

post__in 默认情况下不可公开查询,因此您只需验证和复制$_GET[\'post__in\']parse_query 动作挂钩,让事情发生。

add_action(\'parse_query\', \'wpse59828_parse_query\');
function wpse59828_parse_query($query) {
    if (empty($_GET[\'post__in\']))
        return $query;

    $posts = explode(\',\', $_GET[\'post__in\']);
    $post__in = array();
    foreach ($posts as $p) {
        $post__in[] = intval($p);
    }

    $query->query_vars[\'post__in\'] = $post__in;
    return $query;
}
然后您只需访问以下内容:

http://mywebsite.com/?post__in=23,18,2,199,6,8
请注意,像这样,您将无法在WordPress 3.5之前的版本中设置发布顺序(#13729). 使用this plugin 如果你需要的话。

SO网友:robin
$tax_query = array (
    array (
        \'taxonomy\' => \'product_cat\',
        \'field\' => \'slug\',
        \'terms\' => $cat_name
        )
    );

$args = array( \'tax_query\' => $tax_query, \'numberposts\' => -1);
$lastposts = get_posts( $args );
结束

相关推荐

Using $themename Variables

将您的主题名(themename)和缩写名(shortname)设置为变量以用于主题的各种函数,这是一个坏主意吗?示例:$themename = mytheme; $shortname = mth; /** * Get our wp_nav_menu() fallback, wp_page_menu(), to show a home link. */ function toolbox_page_menu_args($args) { /