Почему не работает пагинация в кастомном типе записи?
Столкнулся с проблемой одинакового контента на всех страницах пагинации в кастомном типе. При клике на следующую страницу пагинации в урл добавляется новая страница, но на странице все отображается тоже самое. Структуру ссылок обновлял. Мои шаблоны:
1 front-page.php:
<?php
get_header(); ?>
<div id="content">
<?php
// Получение текущей страницы, если не указано, то по умолчанию 1
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
// Запрос для получения постов
$args = [
'post_type' => 'agency',
'post_status' => 'publish',
'orderby' => 'date',
'order' => 'DESC',
'posts_per_page' => 10, // Количество постов на одной странице
'paged' => $paged, // Номер текущей страницы
];
$query = new WP_Query($args);
?>
<?php if ($query->have_posts()):
$arr_id = []; ?>
<?php while ($query->have_posts()):
$query->the_post();
the_id();
?>
<?php endwhile; ?>
<!-- Пагинация -->
<div class="pagination">
<?php
echo paginate_links([
'total' => $query->max_num_pages, // Общее количество страниц
'current' => $paged, // Текущая страница
'prev_text' => __('« Previous'), // Текст для ссылки "Предыдущая страница"
'next_text' => __('Next »'), // Текст для ссылки "Следующая страница"
]);
?>
</div>
<?php wp_reset_postdata(); // Сброс данных после запроса ?>
<?php endif; ?>
</div>
<?php get_footer(); ?>
- agency.php:
<?php
// Регистрируем свой тип страницы - бюро переводов
function create_agency() {
$labels = array(
'name' => _x( 'Бюро переводов', 'Post Type General Name', 'textdomain' ),
'singular_name' => _x( 'Бюро переводов', 'Post Type Singular Name', 'textdomain' ),
'menu_name' => _x( 'Бюро', 'Admin Menu text', 'textdomain' ),
'name_admin_bar' => _x( 'Бюро', 'Add New on Toolbar', 'textdomain' ),
'archives' => __( 'Список бюро', 'textdomain' ),
'attributes' => __( 'Атрибуты бюро', 'textdomain' ),
'parent_item_colon' => __( 'Родительская страница:', 'textdomain' ),
'all_items' => __( 'Все бюро', 'textdomain' ),
'add_new_item' => __( 'Добавить новое бюро переводов', 'textdomain' ),
'add_new' => __( 'Добавить новое бюро', 'textdomain' ),
'new_item' => __( 'Новое бюро', 'textdomain' ),
'edit_item' => __( 'Редактировать бюро', 'textdomain' ),
'update_item' => __( 'Обновить бюро', 'textdomain' ),
'view_item' => __( 'Посмотреть бюро', 'textdomain' ),
'view_items' => __( 'Посмотреть все бюро', 'textdomain' ),
'search_items' => __( 'Искать бюро', 'textdomain' ),
'not_found' => __( 'Бюро не найдены', 'textdomain' ),
'not_found_in_trash' => __( 'В корзине ничего не нашлось', 'textdomain' ),
'featured_image' => __( 'Основное изображение', 'textdomain' ),
'set_featured_image' => __( 'Установить основное изображение', 'textdomain' ),
'remove_featured_image' => __( 'Удалить основное изображение', 'textdomain' ),
'use_featured_image' => __( 'Использовать как основное изображение', 'textdomain' ),
'insert_into_item' => __( 'Вставить в запись бюро переводов', 'textdomain' ),
'uploaded_to_this_item' => __( 'Загружено в эту запись типа бюро переводов', 'textdomain' ),
'items_list' => __( 'Список записей типа бюро переводов', 'textdomain' ),
'items_list_navigation' => __( 'Навигация по списку записей типа бюро переводов', 'textdomain' ),
'filter_items_list' => __( 'Отфильтровать список записей типа бюро переводов', 'textdomain' ),
);
$args = array(
'label' => __( 'Бюро переводов', 'textdomain' ),
'description' => __( 'Все бюро переводов', 'textdomain' ),
'labels' => $labels,
'menu_icon' => 'dashicons-translation',
'rewrite' => array( 'slug' => 'agency', 'with_front' => false ),
'supports' => array('title', 'editor', 'excerpt', 'thumbnail', 'revisions', 'post-formats'),
//'taxonomies' => array('post_tag'),
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'can_export' => true,
'has_archive' => true,
'hierarchical' => true,
'exclude_from_search' => false,
'show_in_rest' => false,
'publicly_queryable' => true,
'capability_type' => 'post',
);
register_post_type( 'agency', $args );
register_taxonomy( 'agency_tag', array('agency'), array(
'hierarchical' => false,
'label' => 'Теги бюро',
'singular_label' => 'Тег бюро',
'rewrite' => array( 'slug' => 'agency-tag', 'hierarchical' => true, 'with_front'=> false ),
)
);
}
add_action( 'init', 'create_agency', 0 );
?>
Гуглил, толком информации не нашел. Кто-то менял параметры hierarchial, но у меня изначально все стояло в true. Пытался делать по разным руководствам - результат один. Вероятно, дело, действительно в настройке кастомного типа. Буду благодарен за мысли и подсказку.
Ответы (1 шт):
Автор решения: Bykuznec
→ Ссылка
$paged = (get_query_var('paged')) ? get_query_var('paged') : (get_query_var('page') ? get_query_var('page') : 1);