squrler
  • 0
Новичок

Разбивка на страницы дает дополнительную страницу без результатов

  • 0

Я пытаюсь реализовать разбиение на страницы на странице категории. Разбивка на страницы работает, но теперь по какой-то причине плагин разбивки на страницы, который я использую, отмечает одну дополнительную страницу результатов, когда эта страница на самом деле пуста.

Я почти уверен, что это не имеет ничего общего с плагином разбиения на страницы, потому что я видел сообщения о людях, имеющих ту же проблему с next_posts_link и previous_posts_link.

Кто-нибудь знает, как это могло произойти?

Петля:

<?php       
global $myOffset;
$myOffset = 11;
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query('offset='.$myOffset.'&cat=6&posts_per_page=12'.'&paged='.$paged);
?>

<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>

STUFF

<?php endwhile; ?>

<?php if(function_exists('wp_paginate')) {
   // get yo paginate on
   wp_paginate();
} ?>

Изменить: я также использую этот плагин functions.php, чтобы включить параметр смещения в пользовательском wp_query:

function my_post_limit($limit) {
    global $paged, $myOffset;
    if (empty($paged)) {
            $paged = 1;
    }
    $postperpage = intval(get_option('posts_per_page'));
    $pgstrt = ((intval($paged) -1) * $postperpage) + $myOffset . ', ';
    $limit = 'LIMIT '.$pgstrt.$postperpage;
    return $limit;
} //end function my_post_limit
Share
  1. Можете ли вы попробовать другой плагин разбиения на страницы, если этот плагин не подчиняется смещению? Вы пробовали wordpress.org/extend/plugins/wp-pagenavi ? Я клянусь им, но мне никогда не приходилось использовать его со смещением, поэтому я не могу сказать, что это решит вашу проблему, но попробовать стоит…

    • 0
    • Вы правы, это так! Когда смещение равно 0, каждая страница с разбивкой на страницы имеет содержимое (без пустых страниц). Теперь, конечно, сложный вопрос, есть ли способ обойти это? Я использую эту функцию в сочетании с фильтром, чтобы включить смещение в пользовательском wp_query и по-прежнему иметь разбиение на страницы: function my_post_limit($limit) { global $paged, $myOffset; if (empty($paged)) { $paged = 1; } $postperpage = intval(get_option('posts_per_page')); $pgstrt = ((intval($paged) -1) * $postperpage) + $myOffset. ', '; $limit = 'LIMIT '.$pgstrt.$postperpage; return $limit; } //end function my_post_limit

      • 0
    • @Squrler, извините, я недостаточно работал с нумерацией страниц, чтобы иметь хорошее представление о том, как это обойти. Я обновлю, если что-то придумаю. Кстати, добавьте этот фрагмент кода в исходный вопрос, чтобы его было легче читать.

      • 0
    • +1 — к перемещению кода в вопрос.. (блоки кода ужасно читать в комментариях).

      • 0
    • Сделаю это. Кроме того (и, пожалуйста, извините, если я не должен спросить об этом здесь), можно ли добавлять блоки кода в комментарий?

      • 0
    • @Squrler не уверен, что ты имеешь в виду. Вы можете добавить код в комментарии (как вы это сделали), но вы не можете делать отступы и т. д., комментарии на самом деле не предназначены для этого.

      • 0
    • Эй, спасибо за ответ. Я не уверен, что понимаю, что вы имеете в виду под «более родной функцией». Разве next_posts_link тоже не родная функция? Кроме того, я использую функцию wp_paginate, а не функцию next_posts_link.

      • 0
    • @Squrler — внутри WordPress есть некоторые функции, которые предлагают уровень выше других функций. Так next_posts_link() что это просто упрощенная версия get_adjacent_posts() . Есть много других подобных. Другой пример has_post_format() — слой выше is_object_in_term() . Просто взгляните на код плагина и прочитайте встроенные комментарии, и вы поймете лучше.

      • 0
  2. Я не уверен, но у меня есть предположение, что это потому, что вы используете пагинацию и offset в то же время. Пагинация может быть рассчитана для всего набора, но вы уменьшаете размер набора со смещением, поэтому количество страниц становится завышенным.

    • 0
  3. Вы можете попробовать использовать более нативную get_adjacent_posts() функцию, чтобы увидеть, является ли проблема next_posts_link() функцией. Для получения дополнительной информации я написал образовательный плагин, который хорошо документирован и прокомментирован, чтобы помочь вам в этом процессе.

    • 0

Оставить ответ

You must login to add an answer.