Intereting Posts
Вторичный запрос прерывает главный запрос Режим YouTube oEmbed и режим конфиденциальности Перенаправить пользователя после входа через страницу входа в woocommerce на страницу со своим именем? Подключиться к оформлению шаблона WordPress Перенаправить страницу на первый пост в настраиваемом типе сообщений Получить конкретный ключ ACF и значение из всех сообщений – нет доступа к БД Добавить элемент в качестве фильтра для пользователя Отправка сообщения в базу данных, затем перенаправление на paypal Как фильтровать по slug в зависимости от выбора языка Пользовательская навигация: показывать сообщения в наборах из 4 Есть ли способ установить настраиваемые по умолчанию поля при создании сообщения? Как просмотреть сайт с точки зрения пользователя без регистрации истекает через x дней Как я могу создать meta_query с массивом как meta_field? Исключить текущую запись из цикла

Разбивка страниц не работает на должности категории

Я использую разбиение на страницы WP-PageNavi и по определенным причинам у меня есть « Максимальное количество страниц блога», равное 100, и я не могу его уменьшить.

У меня в общей сложности 30 должностей в категории. Я хочу отображать 10 сообщений на каждой странице, но не отображает разбиение на страницы; он отображается только в том случае, если в категории имеется более 100 сообщений. Код ниже:

$cat_id = get_query_var( 'cat' ); $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1; $found_posts = array( 'posts_per_page' => 10, 'cat' => $cat_id, 'meta_key' => "custom_key", 'meta_value' => '', 'meta_compare' => '!=', 'ignore_sticky_posts' => 1, 'orderby' => 'meta_value_num', // or 'meta_value_num' 'order' => "DESC", 'paged' => $paged ); $loop = new WP_Query( $found_posts ); while( $loop->have_posts() ): $loop->the_post(); global $post; // Loop Here endwhile; wp_reset_query(); if ( function_exists( 'wp_pagenavi' ) ) { wp_pagenavi(); } 

Solutions Collecting From Web of "Разбивка страниц не работает на должности категории"

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

Чтобы решить эту проблему, вам нужно удалить свой код со страницы категории и вернуться к циклу по умолчанию. На странице вашей категории должно быть только следующее:

 if ( have_posts() ) { while ( have_posts() ) { the_post(); // YOUR MARKUP AND TEMPLATE TAGS } } 

Это приведет к тому, что вы увидите все должности категории в должности категории после заказа по дате. Как я уже сказал, теперь вам нужно использовать pre_get_posts чтобы изменить основной запрос на страницах категорий, чтобы настроить пользовательский порядок и разбивку на страницы

Вам нужно добавить следующее в functions.php

 add_action( 'pre_get_posts', function ( $q ) { if ( !is_admin() // Only target the front end queries && $q->is_main_query() // Targets the main query only && $q->is_category() // Only target category pages ) { $q->set( 'posts_per_page', 10 ); $q->set( 'meta_key', 'custom_key' ); $q->set( 'meta_value', '' ); $q->set( 'meta_compare', '!=' ); $q->set( 'orderby', 'meta_value_num' ); $q->set( 'ignore_sticky_posts', 1 ); } }); 

Вы не должны видеть 10 сообщений на странице, заказанных meta_value_num из настраиваемого поля custom_key отсортированного по наименьшей на странице категории

В дополнение к «выбранному ответу» это может потребоваться:

 $q->set( 'post_type', get_post_types() );