我做了个标签。我的主题文件夹下的php,以便从“www.mywebsite”等URL设置所有带标签的帖子页面的样式。com/tag/kittens\'。
然而,如果我去“www.mywebsite”。com/tag/kittens\'它显示我的所有帖子,甚至是那些没有标记为“kittens”或根本没有标记的帖子。我使用了标准的循环,我找不到一种方法来改变它以获取标签页名称,并且只返回那些帖子,而不创建单独的“标签小猫”。每个标签的php类型页。
帮助
<小时>
<?php
get_header();
query_posts( \'posts_per_page=5\' ); ?>
<?php the_tags( $before, $sep, $after ); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="post">
<!-- Display the Title as a link to the Post\'s permalink. -->
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
<!-- Display the date (November 16th, 2009 format) and a link to other posts by this posts author. -->
<small><?php the_time(\'F jS, Y\') ?></small>
<div class="entry">
<?php the_content(); ?>
</div>
</div> <!-- closes the first div box -->
<?php endwhile; else: ?>
<p>Sorry, no posts matched your criteria.</p>
<?php endif;
get_footer();
?>
SO网友:Milo
问题是这一行:
query_posts( \'posts_per_page=5\' );
您正在使用5篇最新帖子的查询覆盖此页面的查询,而不考虑标签、类别等。。如果删除该行,模板将按预期工作。
如果要将标记页限制为仅5篇文章,请使用pre_get_posts
措施:
function wpa69774_limit_tags( $query ) {
if ( $query->is_tag() && $query->is_main_query() ) {
$query->set( \'posts_per_page\', 5 );
}
}
add_action( \'pre_get_posts\', \'wpa69774_limit_tags\' );