iNickolay
@iNickolay

Почему пагинация в Wordpress добавляет post_name, в результате чего возвращается 404 ошибка?

Здравствуйте!
Вообще немного всё запутано:
Имеем страницу /articles/ с рабочей пагинацией, и страницу /multimedia/, на которой при переходе на страницу пагинации получаем 404 ошибку.

Если скопировать целиком код из /articles/ в /multimedia/ - то в /multimedia/ пагинация всё равно не работает :) Магия какая-то.

Я заметил, что на рабочей странице запрос выглядет так:

SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND (wp_posts.ID = '43') AND wp_posts.post_type = 'page' ORDER BY wp_posts.post_date DESC

А где пагинация не работает, так:

SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.post_name = 'page' AND wp_posts.post_type = 'multimedia' ORDER BY wp_posts.post_date DESC


Т. е. к запросу почему-то добавляется условие wp_posts.post_name = 'page'

Код везде одинаковый, и сводится к такому виду: (пробовал не перезаписывать глобальную переменную - не помогло)
$global_wp_query = $wp_query;
$paged = get_query_var('paged') ? absint(get_query_var('paged')) : 1;
$wp_query = new WP_Query([
    'posts_per_page' => 15,
    'post_type' => 'post', // В мультимедиа здесь - multimedia.
// Пробовал добавлять это в запрос - ничего не менялось.
//    'post_name' => '', 
//    'name' => '',
    'paged' => $paged,
]);

while ($wp_query->have_posts()) : $wp_query->the_post();
// Манипуляции с выводом превью
endwhile; wp_reset_postdata();

// Ну и вывод самой пагинации.
the_posts_pagination([
    'total'     => $wp_query->max_num_pages,
    'mid_size'  => 3,
    'prev_next' => true,
    'prev_text' => '←',
    'next_text' => '→',
]); $wp_query = $global_wp_query


В functions.php никаких манипуляций с пагинацией не производилось, кроме как изменение внешнего вида:
add_filter('navigation_markup_template', function ($template, $class) {
    return
        '<nav class="navigation %1$s" role="navigation">'.
        '    <div class="nav-links">%3$s</div>'.
        '</nav>';
}, 10, 2);


"Настройки постоянных ссылок" сбрасывал; гугление не помогло, всякие советы насчёт количества постов в настройках и прочие - никак не помогают.

Ну и очень интересно, почему один и тот же код на одной странице (/articles/) работает корректно, а на другой (/multimedia/) - нет :)
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы