Как правильно реализовать постраничную пагинацию для произвольных типов записей?
не выводится пагинация.
Есть произвольный тип записи "Мероприятие" к нему таксономия (древовидного типа) "меры" и две категории "Благотворительность" и "Прочее".
вот скрин
вот код регистрации произвольного типа записи "Мероприятие":
// хук для регистрации произвольного поста
add_action( 'init', 'register_post_types' );
function register_post_types(){
register_post_type('affairs', array(
'label' => null,
'labels' => array(
'name' => 'Мероприятие', // основное название для типа записи
'singular_name' => 'Мероприятие', // название для одной записи этого типа
'add_new' => 'Добавить мероприятие', // для добавления новой записи
'add_new_item' => 'Добавление мероприятии', // заголовка у вновь создаваемой записи в админ-панели.
'edit_item' => 'Редактирование мероприятии', // для редактирования типа записи
'new_item' => 'Новое мероприятие', // текст новой записи
'view_item' => 'Смотреть мероприятие', // для просмотра записи этого типа.
'search_items' => 'Искать мероприятие', // для поиска по этим типам записи
'not_found' => 'Не найдено', // если в результате поиска ничего не было найдено
'not_found_in_trash' => 'Не найдено в корзине', // если не было найдено в корзине
'parent_item_colon' => '', // для родителей (у древовидных типов)
'menu_name' => 'Мероприятие', // название меню
),
'description' => 'Благотворительные акции, событии, праздники, уагызы, соревнование, викторины',
'public' => true,
'publicly_queryable' => true, // зависит от public
'exclude_from_search' => true, // зависит от public
'show_ui' => true, // зависит от public
'show_in_nav_menus' => true, // зависит от public
'show_in_menu' => true, // показывать ли в меню адмнки
'show_in_admin_bar' => true, // зависит от show_in_menu
'show_in_rest' => true, // добавить в REST API. C WP 4.7
'rest_base' => null, // $post_type. C WP 4.7
'menu_position' => 4,
'menu_icon' => 'dashicons-megaphone',
//'capability_type' => 'post',
//'capabilities' => 'post', // массив дополнительных прав для этого типа записи
//'map_meta_cap' => null, // Ставим true чтобы включить дефолтный обработчик специальных прав
'hierarchical' => false,
'supports' => [ 'title', 'editor' ], // 'title','editor','author','thumbnail','excerpt','trackbacks','custom-fields','comments','revisions','page-attributes','post-formats'
'taxonomies' => ['action'],
'has_archive' => true,
'rewrite' => array(
'pages' => true,
),
'query_var' => true,
) );
}
вот код регистрации таксономии "меры":
// хук для регистрации ТАКСАНОМИИ
add_action( 'init', 'create_taxonomy' );
function create_taxonomy(){
// список параметров: wp-kama.ru/function/get_taxonomy_labels
register_taxonomy( 'action', [ 'affairs' ], [
'label' => '', // определяется параметром $labels->name
'labels' => [
'name' => 'Меры',
'singular_name' => 'Мера',
'search_items' => 'Искать меру',
'all_items' => 'Все меры',
'view_item ' => 'Посмотреть меру',
'parent_item' => 'Родительская мера',
'parent_item_colon' => 'Родительская мера:',
'edit_item' => 'Изминить меру',
'update_item' => 'Обновить меру',
'add_new_item' => 'Добавить новую меру',
'new_item_name' => 'Название новоой меры',
'menu_name' => 'Меры',
],
'description' => 'все что косается мероприятии проводимые мечетью', // описание таксономии
'public' => true,
'publicly_queryable' => true, // равен аргументу public
'show_in_nav_menus' => true, // равен аргументу public
'show_ui' => true, // равен аргументу public
'show_in_menu' => true, // равен аргументу show_ui
'show_tagcloud' => true, // равен аргументу show_ui
'show_in_quick_edit' => true, // равен аргументу show_ui
'hierarchical' => true,
'rewrite' => array(
'with_fron' => true,
'pages' => true,
),
//'query_var' => $taxonomy, // название параметра запроса
'capabilities' => array(),
'meta_box_cb' => true, // html метабокса. callback: `post_categories_meta_box` или `post_tags_meta_box`. false — метабокс отключен.
'show_admin_column' => true, // авто-создание колонки таксы в таблице ассоциированного типа записи. (с версии 3.5)
'show_in_rest' => true, // добавить в REST API
'rest_base' => null, // $taxonomy
// '_builtin' => false,
//'update_count_callback' => '_update_post_term_count',
] );
}
вот мой WP_Query запрос, он находится в файле taxonomy-action-offering.php
<?php
$paged = (isset($_REQUEST['pages'])) ? $_REQUEST['pages'] : 1;
$pagination_args = array(
'prev_text' => __( '«' ),
'next_text' => __( '»' )
);
$args = array(
'post_type' => 'affairs',
'action' => 'offering',
'posts_per_archive_page' => 9,
'paged'=>$paged
);
$query = new WP_Query( $args ); ?>
<?php if ( $query->have_posts() ) : ?>
<!-- пагинация -->
<!-- цикл -->
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
<article class="article">
<h3 class="article-title"><a class="article-link" href="<?php the_permalink(); ?>"><?php the_title() ?></a></h3>
<time><?php the_date('d/m/Y') ?></time>
<p class="article-preview">
<?php echo kama_excerpt( array('maxchar'=>125) ); ?> <a class="more" href="<?php the_permalink(); ?>">Читать дальше...</a>
</p>
</article>
<?php endwhile; ?>
<!-- конец цикла -->
<?php wp_reset_postdata(); the_posts_pagination($pagination_args); ?>
<?php else : ?>
<p><?php esc_html_e( 'Нет постов по вашим критериям.' ); ?></p>
<?php endif; ?>
до этого мне удавалось выводить ссылки пагинации, но все они вели на 404-ую страницу, а теперь я докыварялся в коде что и их вывести не могу.

Для вывода записей этот код не нужен. Скопируйте для примера все что есть в archive.php, должно работать.
Все ваши записи уже находятся в глобальной переменной print_r($wp_query);
а так вы только делаете повторно запрос.