如何覆盖tag.php中的博客页面最多显示

时间:2013-12-01 作者:Badgerer

我正在开发一个网站(http://he.leavingworkbehind.com/) 其特点是在主页上显示一篇文章,由设置>阅读中的“博客页面最多显示”选项决定。

但是,我创建了一个标记。php页面中,我想显示一个完整的帖子列表(相关标签)。我已经找到了可以创建该列表的代码:

<?php

if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<ul class="post-tag-list">
        <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
</ul>

<?php endwhile; endif; ?>
不过,该列表只返回一个结果——可能是因为前面提到的“博客页面最多显示”设置。

所以我的问题是:如何覆盖这个设置?更具体地说,what exact code should I insert on tag.php?

我有一种感觉,我可能已经在Stack Exchange上看到了答案,但我对PHP编码太无知,无法成功实现它。非常感谢您的帮助!

干杯

汤姆

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

我应该在标签上插入什么确切的代码。php?

Nothing

更改main query, 使用pre_get_posts 操作,该操作在主查询之前运行,并在加载模板之前运行。如果修改模板中的查询,则会运行额外的查询,这是对资源的浪费。

这将符合你的主题functions.php, 或a plugin.

function wpa_tag_posts_per_page( $query ) {
    if( ! is_admin()
        && $query->is_tag()
        && $query->is_main_query() ) {
            $query->set( \'posts_per_page\', 10 );
    }
}
add_action( \'pre_get_posts\', \'wpa_tag_posts_per_page\' );

结束

相关推荐

Paginate tags page

如果我单击一个随机标记,我希望标记页面只列出20篇与该标记相关的文章并分页。<?php /** * The template for displaying Tag Archive pages. */ get_header(); ?> <div id=\"container\"> <div id=\"content\" role=\"main\"> &#