Почему WP_QUERY работает по-разному для тега. php / category. php / archive. php, чем для таксономии. php / page. php et c? - PullRequest
0 голосов
/ 24 января 2020

Почему WP_QUERY работает по-другому для тега. php / category. php / archive. php, чем для таксономии. php / page. php et c?

In В моем случае у меня есть пользовательский тип поста «Галереи», который использует теги Wordpress (а также посты по умолчанию). Итак, в моем теге. php Я хочу использовать две петли для отображения галерей и постов.

К сожалению, разбиение на страницы на теге. php не работает… (ошибка 404 на страницах) - у меня нет этой проблемы при тестировании страницы. php, где я скопировал тот же код ( с жестко закодированным идентификатором тега).

Могу ли я как-то сбросить основной запрос Wordpress для тега. php, чтобы он вел себя так же, как тест страницы. php?

Код в теге. php:

$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;

$args = array(
  'type' => 'post',
  'post_type' => 'gallery',
  'posts_per_page' => 4,
  'paged'       => $paged,
  'tag_id' => get_queried_object()->term_id
);

$loop = new WP_Query( $args );

if( $loop->have_posts() ): 

  while( $loop->have_posts() ): $loop->the_post(); ?>

    HTML HERE

  <?php
  endwhile; 

  custom_pagination($loop, '', '', '#galleries'); 

endif;
wp_reset_postdata(); 

Функция. php:

function custom_pagination($loop, $prev, $next, $after_url = '') {
    echo paginate_links( array(
      'base'         => str_replace( 999999999, '%#%', esc_url( get_pagenum_link( 999999999 ) ) ),
      'total'        => $loop->max_num_pages,
      'current'      => max( 1, get_query_var( 'paged' ) ),
      'format'       => '?paged=%#%',
      'show_all'     => false,
      'type'         => 'plain',
      'end_size'     => 2,
      'mid_size'     => 1,
      'prev_next'    => true,
      'prev_text'    => sprintf( '<i> < </i> %1$s', __( $prev, 'text-domain' ) ),
      'next_text'    => sprintf( '%1$s <i> > </i>', __( $next, 'text-domain' ) ),
      'add_args'     => false,
      'add_fragment' => $after_url,
    ));
}
...