查询除父级外的所有发布类型

时间:2014-12-09 作者:Kevin Nugent

我正在构建一个包含多个帖子类型的网站,并使用一个index.php 依次查询每个文件的存档。其中一种帖子类型是分层的,我只想查询父级。我可以使用query_posts 限制为\'post_parent\' => 0 但这会创建一个新查询并重置post type参数,这意味着我必须为每个post类型创建单独的查询。

有没有办法限制while ( have_posts() ) : the_post(); 只发送给家长而不创建新查询?

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

在您的功能中。php您可以创建一个将挂钩到pre\\u get\\u posts挂钩的函数。例如(仅举一个例子):

function alter_query($query){
  $query->set(\'post_parent\', 0);
}
add_action( \'pre_get_posts\', \'alter_query\' );
您可以在那里更改主查询。这样while(have\\u posts()):the\\u post();仍将正常工作。(您应该检查是否正在更改正确的查询等。否则,wordpress会将post\\u父项应用于所有查询。您不希望这样)。

最大的优点是,如果更改主查询,只需这样做。Wordpress仍将选择适当的模板等。如果还想更改加载的模板,可以使用template\\u重定向挂钩。

结束

相关推荐

The Loop in Static Page

我对环路有一些问题。我以“Twenty14”主题为例。我正在使用基本循环创建2个php文件。一个是家。其中一个是名为示例页的模板页。php。两者都包含此代码;if( have_posts() ) : while( have_posts() ) : the_post(); the_content; endwhile; endif; 没什么特别的,唯一的区别是我在示例页面上有模板声明。php/** * Template Nam