如何限制页面分页...又一次

时间:2016-05-24 作者:Antony Gibbs

我在钻研老问题,因为没有解决办法。How to limit page pagination

我正在寻找一种方法来限制主页和类别(archive.php)上的页面。我有大约20万个帖子,分为大约50个类别。如果我保留默认分页,主页有20k页。然后,大多数类别有超过5k页。这将发送一些很长很长的循环。。。每增加一篇帖子(200篇/天),谷歌就会重新开始,等等。。。当我只想谷歌搜索最近的帖子时(这是一个新闻网站)

我所需要的就是让访问者浏览每个类别的前10页。

有什么好方法可以做到这一点吗?

我尝试过这里描述的不同的事情,但没有成功。Limit number of pages in pagination

// this didn\'t work (beyond page 10 "next page" take us back to page 1)
function wpcodex_filter_main_search_post_limits( $limit, $query ) {     
  return \'LIMIT 0, 100\'; 
} 
add_filter( \'post_limits\', \'wpcodex_filter_main_search_post_limits\', 10, 2 );
删除第10页上的页面链接对我来说很有用,即使你可以手动进入第11页并查看第11页的帖子。。。我只想在谷歌上找不到链接。

不能删除旧帖子,也不能运行双重查询。

谢谢你的帮助

2 个回复
SO网友:Antony Gibbs

我很幸运,主题使用了它自己的功能,所以很容易重写。受worpdress native get\\u的启发,\\u posts\\u导航(wp includes/link template.php)下面是我最终使用的:

function my_get_the_posts_navigation( $args = array() ) {
    $limit = 5;
    $navigation = \'\';

    // Don\'t print empty markup if there\'s only one page.
    if ( $GLOBALS[\'wp_query\']->max_num_pages > 1 ) {
        $args = wp_parse_args( $args, array(
            \'prev_text\'          => __( \'Older posts\' ),
            \'next_text\'          => __( \'Newer posts\' ),
            \'screen_reader_text\' => __( \'Posts navigation\' ),
        ) );


        $next_link = get_previous_posts_link( $args[\'next_text\'] );

        $p = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
        if ($p < $limit) {
          $prev_link = get_next_posts_link( $args[\'prev_text\'] );
        } else {
          $prev_link = false;
        }

        if ( $prev_link ) {
            $navigation .= \'<div class="nav-previous">\' . $prev_link . \'</div>\';
        }

        if ( $next_link ) {
            $navigation .= \'<div class="nav-next">\' . $next_link . \'</div>\';
        }

        $navigation = _navigation_markup( $navigation, \'posts-navigation\', $args[\'screen_reader_text\'] );
    }

    return $navigation;
}

function my_the_posts_navigation( $args = array() ) {
    echo my_get_the_posts_navigation( $args );
}

// now override the theme pagination function
if ( ! function_exists( \'cactus_paging_nav\' ) ) :
function cactus_paging_nav() {

    my_the_posts_navigation();
}
endif;

SO网友:Bunty

您可以在存档模板中使用以下功能

paginate_links
并设置“;“总计”;到所需的页数。

参考号:https://developer.wordpress.org/reference/functions/paginate_links/

相关推荐

Why my pagination gets 404?

我试图理解为什么我的分页从第二页开始,每页都会出现404错误。现在在我设置的阅读设置中Blog pages show at most 至1。<?php $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1; $query = new WP_Query( array( \'post_type\' => \'behold_t