Как ограничить разбивку страниц … снова

Я выкапываю старый вопрос, так как не было решения. Как ограничить разбивку страниц

Я ищу способ ограничить страницы на главной странице и категориях (archive.php). У меня около 200 тыс. Сообщений, которые распространяются примерно на 50 категорий. Если я оставлю разбивку по умолчанию, на главной странице есть 20k страниц. Тогда большинство категорий имеют более 5 тыс. Страниц. Это отправит google в несколько длинных циклов … и каждый раз, когда будет добавлена ​​почта (200 / день), Google начнет снова и т. Д. … когда все, что я хочу, это google, чтобы просмотреть последние сообщения (это новостной сайт)

Все, что мне нужно – это позволить посетителям перемещаться, отбросив 10 первых страниц каждой категории.

Есть ли хороший способ сделать это?

Я пробовал разные вещи, описанные здесь, без успеха. Ограничить количество страниц в разбивке на страницы

// 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 сообщений … все, что я хочу, это google, чтобы не найти ссылку.

Удаление старых сообщений не является опцией или не выполняется двойной запрос.

Спасибо за вашу помощь

Solutions Collecting From Web of "Как ограничить разбивку страниц … снова"

Мне повезло, тема использовала ее собственную функцию, поэтому ее легко переопределить. Вдохновленный родной get_the_posts_navigation от worpdress (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;