【问题标题】:WordPress page navigation not working on tag.phpWordPress 页面导航在 tag.php 上不起作用
【发布时间】:2015-09-21 05:07:46
【问题描述】:

我正在尝试在 WordPress 中为我的 tag.php 文件添加分页,为了让它正常工作,我使用了wp_pagenavi()。我已经设置了$paged 变量,但是由于某种原因,当我单击第 2 页时,它会将我带到一个损坏的页面,尝试代码:

 global $query_string;
 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
 query_posts('posts_per_page=6&tag='.$current_tag."&paged=".$paged  ); 
 while (have_posts()) : the_post(); 
 /* LOOP STUFF */

 endwhile;  
 wp_pagenavi(); 
 wp_reset_query(); 


 endif;

如何让 tag.php 转到第 2 页?

【问题讨论】:

  • 你不应该使用query_posts,看看stackoverflow.com/a/16288794/1981996
  • 我想我需要将它用于 wp 页面导航吗?
  • 来自插件的常见问题解答:scribu.net/wordpress/wp-pagenavi/…
  • 感谢 tag.php 似乎有问题,我修改了上面的代码以正确声明 $paged 变量,但是当我点击第二页时它把我带到了一个损坏的页面跨度>
  • 我不确定如何实现请求

标签: php wordpress tags


【解决方案1】:

按照上面 cmets 的建议,从 tag.php 中删除 query_posts 内容并修改来自 functions.php 的查询:

add_action( 'pre_get_posts','so16299109_pre_get_posts' );
function so16299109_pre_get_posts( $query )
{
    if( is_tag() && $query->is_main_query() ){
        $query->set( 'posts_per_page', 6 );
    }
    return $query;
}

【讨论】:

  • 谢谢,我没有意识到修改会像你把它放在那里一样简单。那行得通。
  • 我可以再问一件事,在获得帖子之前的那个数字是从哪里来的?所以16299109
  • 这是 Stackoverflow 上问题的 ID!为函数名称添加前缀被认为是一种很好的做法,请参见例如nacin.com/2010/05/11/in-wordpress-prefix-everything
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
  • 2014-05-30
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多