@Mogambus

Почему не работает пагинация на архивной странице?

Доброго времени суток.
Возникла проблема с работоспособностью пагинации на архивной странице.
Пытаюсь сделать такую структуру:
site.ru/karkasnye/taxonomy/ - таксономию karkasnyi через rewrite перезаписал в karkasnye
site.ru/proekty_domov/karkasnye/dom/ - через rewrite добавил путь proekty_domov/

Пагинация по ссылке - site.ru/proekty_domov/karkasnye/ - работает
Пагинация по ссылке - site.ru/karkasnye/ - выводится, но не работает

В идеале конечно сделать структуру:
site.ru/proekty_domov/karkasnye/dom/ - для домов
site.ru/proekty_domov/karkasnye/taxonomy/ - для домов

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

Регистрация поста и таксономии:
register_taxonomy('karkasnyi', array('karkasnye'), array(
		'label'                 => 'Каркасные дома',
		'labels'                => array(
			'name'              => 'Каркасные дома',
			'singular_name'     => 'Каркасные дома',
			'search_items'      => 'Искать Каркасный дом',
			'all_items'         => 'Все Каркасные дома',
			'parent_item'       => 'Родит. раздел Каркасных домов',
			'parent_item_colon' => 'Родит. раздел Каркасных домов:',
			'edit_item'         => 'Ред. Раздел Группы Каркасных домов',
			'update_item'       => 'Обновить категорию Каркасные дома',
			'add_new_item'      => 'Добавить категорию Каркасные дома',
			'new_item_name'     => 'Новый Раздел Каркасных домов',
			'menu_name'         => 'Категории Каркасных домов',
		),
		'description'           => 'Рубрика Каркасных домов', 
		'public'                => true,
		'show_in_nav_menus'     => false, 
		'show_ui'               => true, 
		'show_tagcloud'         => false, 
		'hierarchical'          => false,
		
		'show_admin_column'     => true, 
		'rewrite'       => array( 'slug' => 'karkasnye', 'with_front' => false ),
	) );

	register_post_type('karkasnye', [
		'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'          => 'Каркасные дома', 
		),
		'public'              => true,
		'menu_position'       => 82,
		'menu_icon'           => 'dashicons-star-filled', 
		'hierarchical'        => true,
		'supports'            => array('title', 'editor', 'thumbnail'),
		'has_archive'         => true,
		//'taxonomies'          => array( 'proekty_domov/karkasnyi'),
		'rewrite'       => array( 'slug' => 'proekty_domov/karkasnye', 'with_front' => false ),
	]);


Вывод на архивной странице:
$args = array(
       'post_type'  => 'karkasnye',
        'posts_per_page' => 1,
        'paged' => ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1,
 );
$query = new WP_Query( $args );
<?php if($query->have_posts()) : ?>
  <?php while($query->have_posts()) : $query->the_post(); ?>
...
 <?php endwhile; ?>
<?php endif; ?>
 <?php
    $args = array(
         'base'         => str_replace( 999999999, '%#%', esc_url( get_pagenum_link( 999999999 ) ) ),
          'total'        => $query->max_num_pages,
          'current'      => max( 1, get_query_var( 'paged' ) ),
          'format'       => '?paged=%#%',
          'show_all'     => false, 
          'prev_next'    => true,
          'mid_size'     => 4,
          'end_size'     => 1,
          'add_args'     => false, 
          'add_fragment' => '',   
          'screen_reader_text' => __( '' ),
         );
  echo paginate_links($args); wp_reset_query();?>
  • Вопрос задан
  • 40 просмотров
Решения вопроса 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Потому что на архивной странице уже есть глобальный запрос записей, новый WP_Query() вызывать не нужно. Откройте любую тему twenty и посмотрите как должен выглядеть шаблон archive.php, а эту отсебятину можно смело удалить
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы