单个帖子模板上的POSTS_NAV_LINK

时间:2014-08-24 作者:user1374796

我有一个帖子类型叫做journalsingle-journal.php 模板我正在查询journal 类似这样的帖子:

<?php query_posts( array(
     \'posts_per_page\' => 4,
     \'post_type\' => \'journal\',
     \'paged\' => ( get_query_var(\'page\') ? get_query_var(\'page\') : 1 ),
));
?>
这很好,但显示导航:<?php posts_nav_link(\' \',\' \',\'load more posts +\'); ?> 正在链接到/journal/POST_TITLE_HERE/page/2 我要显示的位置/journal/page/2 (如图所示journal-archive.php 模板),如果可能的话?如有任何建议,将不胜感激!

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

单个页面设计为显示单个帖子,而不是像归档页面那样显示帖子索引。我也不确定你在这里想要达到什么目的。

尝试将特定模板用于除其预期用途之外的任何其他用途总是一个坏主意。主查询非常特定于特定模板,在这种情况下,主查询将被设置为查询和检索被查询的特定单个帖子。单页不用于归档页或索引页

正是由于这个原因,您得到了这种不一致和非预期的结果。Wordpress试图做的是显示当前查询的单个帖子的第2页,这就是为什么您会得到这个奇怪的URL。

我还想指出几点:

切勿使用query_posts, 我的重点是,绝对不会Note: 此功能不适用于插件或主题。如后文所述,有更好、性能更好的选项来更改主查询。query\\u posts()是一种过于简单且有问题的方法,通过将页面的主查询替换为新的查询实例来修改它。它效率低下(重新运行SQL查询),并且在某些情况下会彻底失败(尤其是在处理POST分页时)。

切勿将主查询替换为主页、存档页或单页模板上的任何类型的自定义查询。

  • posts_nav_link 不用于单个页面

    用于显示自定义帖子类型的存档页面应命名为存档日志。php,而不是日志存档。php。这违反了正常的模板层次结构

    要进一步阅读,请访问以下链接:

  • 结束

    相关推荐

    is_single(); Question

    如果页面包含此代码:<?php if( !is_single(\'\') ): ?><div id=\"navtoggle\"></div><?php endif; ?>但不管它是否会显示div navtoggle,这是否意味着代码会让WP认为该页面是posts 页如果没有,如何使WP在主页上仅显示navtoggle?