防止使用新的Query_Posts()更改

时间:2018-06-28 作者:Rvervuurt

我必须在我的主题首页上显示12项我的自定义帖子类型。但是,当我这样做时,页面标题(<title>...</title>) 更改为Custom Post Type archive - Page Title.

因为这是首页,我只想让它有正常的首页标题,即Page title - page tag line. 有没有办法在新的query_posts()? 或者只是为了防止在使用新的query_posts()?

我不介意在子页面上发生这种情况,但在首页,当我打开筛选结果时,它不应该改变post_type.

这是我现在使用的查询:

query_posts( array( 
   \'post_type\' => \'bwps\',
   \'posts_per_page\' => 12
));

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

你不应该使用query_posts() 完全从…起the documentation:

注意:此函数将完全覆盖主查询,不供插件或主题使用。它修改主查询的过于简单的方法可能会有问题,应该尽可能避免。在大多数情况下,有更好、更高性能的选项来修改主查询,例如通过WP\\u查询中的“pre\\u get\\u posts”操作。

如果你想在首页上显示一些自定义帖子,那么你应该为首页创建一个模板(或者front-page.php 或acustom template. 然后,在该模板上,用您自己的WP_Query:

$bwps = new WP_Query( array( 
   \'post_type\' => \'bwps\',
   \'posts_per_page\' => 12
) );
并使用$bwps:

if ( $bwps->have_posts() ) :
    while ( $bwps->have_posts() ) : $bwps->the_post();
        the_title();
    endwhile;
endif;
如果要将主页显示设置为最新帖子,并在主页上保持分页,只需将这些最新帖子替换为您自己的帖子类型,然后请参阅this previous question 关于这个话题。

结束

相关推荐