Wordpress查询帖子有排除

时间:2016-06-15 04:24:00

标签: wordpress

这是我要查询所有事件......

 query_posts("post_type=marcato_show&meta_key=marcato_show_start_time_unix&orderby=meta_value&order=ASC&posts_per_page=999" );

这是有效的,只是参加社区活动......

query_posts( "post_type=marcato_show&showtype=community-events&meta_key=marcato_show_start_time_unix&orderby=meta_value&order=ASC&posts_per_page=999" );

如何在没有社区活动的情况下获取所有活动?

1 个答案:

答案 0 :(得分:0)

我建议使用here,而不是使用导致许多问题的query_posts()(请参阅hereWP_Query class)。 /强>

这样可以避免一些模糊的错误,为您加快查询速度,还可以更轻松地进行更改,例如排除分配到特定字词的帖子(在这种情况下,community-events showtype项分类)。

请务必阅读WP_Query documentation,因为它涵盖了您将来可能需要的许多有用参数。但就目前而言,以下是您运行相同查询的方式,不包括community-events中的帖子:

$posts = new WP_Query(array(
  "post_type" => "marcato_show",
  "meta_key" => "marcato_show_start_time_unix",
  "orderby" => "meta_value",
  "order" => "ASC"
  "posts_per_page" => 999, // you can also use `-1` to return unlimited results
  "tax_query" => array(
    array(
      "taxonomy" => "showtype",
      "field" => "slug",
      "terms" => "community-events",
      "operator" => "NOT IN",
    ),
  ),
));

if($posts->have_posts()){
  while($posts->have_posts()){
    $posts->the_post();
    // DISPLAY YOUR POSTS HERE
}

wp_reset_postdata(); // restore original post data

这是使用您在原始帖子中使用的相同参数进行查询,添加tax_query来查询不在该自定义分类术语中的帖子。在上面链接的WP_Query文档中向下滚动到 Taxonomy Parameters ,以获取有关其工作原理的完整详细信息。