query posts in wordpress

时间:2013-05-19 作者:Naveen

我想在word press中的\\u循环开始之前筛选查询结果。我只希望结果的term\\u id或term\\u taxonomy\\u id等于1。

query_posts(\'post_type=my_post&term_id=1&posts_per_page=6\');
这是返回所有行,我是word press新手,所以我不确定我们是否可以在query\\u帖子中使用term\\u id。还有其他方法吗?

1 个回复
SO网友:s_ha_dum

没有term_id 参数You need a tax_query.

$args = array(
    \'post_type\' => \'my_post\',
    \'posts_per_page\' => 6,
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'yourtaxname\',
            \'field\' => \'id\',
            \'terms\' => 1
        )
    )
);
$query = new WP_Query( $args );
注意,我使用了new WP_Query 而不是query_posts. 不使用query_posts.

执行上述操作将创建一个新查询。也就是说,除了已请求的任何信息之外,它还将请求数据中的信息。这很好,如果这是您所需要的,但是如果可能的话,最好在检索任何帖子之前更改主查询。这将减少服务器上的负载,从而缩短站点的加载时间。

中断主查询使用pre_get_posts. 这将是执行此操作的等效代码。

function restrict_tax_wpse_100006($qry) {
  if (is_page(\'somepage_id_title_or_slug\')) {
    $qry->set(\'post_type\',\'my_post\');
    $qry->set(\'posts_per_page\',6);
    $qry->set(\'tax_query\', 
        array( 
             array(
                  \'taxonomy\' => \'yourtaxname\',
                  \'field\' => \'id\',
                  \'terms\' => 1 // or array(1)
             ) 
        )
    );
  }
}

结束

相关推荐

Remove the_content From Loop

我试图显示一个只有特定元素的自定义循环。“我的循环”当前包含标题、创建日期、作者和;所容纳之物然而,我正在尝试删除循环中每个帖子的内容,因为我不希望它在这个列表中显示得不走运。我甚至已经从循环中删除了\\u content();它仍然会在循环部分下显示帖子内容的列表。任何帮助都将不胜感激,这是我的代码:<?php query_posts(\'category_name=halloween &posts_per_page=6\'); ?> <?php if ( have_p