Intereting Posts
Использовать структуру меню для постоянных ссылок Редактор сообщения имеет высоту 89953px. Как исправить? Как создать сайт с одной страницей в WordPress Как обойти 404 для определенных страниц / сообщений? Как сравнить дату в пользовательском поле с сегодняшней датой в пользовательском WP_Query? WP-RestAPI и xml sitemap Заполнить список слайд-шоу изображений с изображений на странице WordPress? Пользовательские изображения тегов сообщений, которые не отображаются с помощью ACF JOIN SQL для сортировки списка сообщений CPT по disply_name для user_id в postmeta Использование вкладок в виджетах администратора Получить тип расширенного настраиваемого поля (ACF) в цикле WP_Query Zero сообщения возвращаются с get_posts () на edit.php, но сообщения возвращаются на post.php Локализация скрипта для передачи значения функции javascript и / или отношение множественного ключевого слова не работает Как заказать пользователей по алфавиту по имени? в плагине UPME

Страницы с разбивкой по страницам отображают правильный контент, но ссылки на страницы не являются

Я использую пользовательский WP_Query для отображения сообщений на статической главной странице. и генерации нумерованных ссылок на paginate_links функциями paginate_links . Это код, который у меня есть …

 $latest_args = array( 'post_type' => 'post', 'category__not_in' => array( 3 ), 'ignore_sticky_posts' => 1, 'paged' => $paged, ); $latest_query = new WP_Query( $latest_args ); if ( $latest_query->have_posts() ) : while ( $latest_query->have_posts() ) : $latest_query->the_post(); get_template_part( 'content', get_post_format() ); endwhile; if ( $latest_query->max_num_pages > 1 ) : $big = 999999999; echo '<div class="pagination">'; echo paginate_links( array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'current' => max( 1, get_query_var('paged') ), 'total' => $latest_query->max_num_pages ) ); echo '</div>'; endif; endif; wp_reset_postdata(); 

Но когда я использую это на своей static front page он всегда отображает содержимое первой страницы на всех других страницах. Но это было исправлено, добавив параметр paged для запроса, как это предлагается в кодексе .

 if ( get_query_var('paged') ) { $paged = get_query_var('paged'); } elseif ( get_query_var('page') ) { $paged = get_query_var('page'); } else { $paged = 1; } 

Который фиксировал дублирующийся контент на страницах с разбивкой на страницы, но ссылки на разбиение на страницы, основанные на цифрах, всегда придерживаются первой страницы. Он всегда отображает первую ссылку (1) как текущий, что затрудняет просмотр остальной части страниц.

Хотя этот код работает отлично, если я использую его на любой другой странице, кроме static front page .

Любое решение этой проблемы.

EDIT: обновление

Я попытался отключить все плагины и удалить все настраиваемые функции из functions.php но проблема все еще существует. Поэтому я предполагаю, что это должно что-то сделать с тем, как я использую WP_Query или WP_Query .

В этом коде должна быть некоторая ошибка.

Статические страницы не работают с переменной paged запроса, им нужна переменная page .

Именно по этой причине ваш второй блок кода заставляет работать запрос: он использует page var, когда она доступна.

Однако ваш код с разбивкой по страницам всегда использует paged :

 ... 'format' => '?paged=%#%', ... 

Таким образом, вы отправляете paged запрос var, но ищете page var.

Решение состоит в том, чтобы заставить ваш аргумент format отправлять запрос page var, если он используется со статической страницы.

 if ( $latest_query->max_num_pages > 1 ) : $var = is_page() ? 'page' : 'paged'; // <-- choose var here $big = 999999999; echo '<div class="pagination">'; echo paginate_links( array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?' . $var . '=%#%', // <-- use var here 'current' => max( 1, get_query_var($var) ), // <-- use var here 'total' => $latest_query->max_num_pages ) ); echo '</div>'; endif; 

Непроверенный .