Проверка в файле category.php, как вывести определенное количество постов категории?

Вот таким образом вывожу первые 3 поста категории
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array('category_name' => 'stories-of-successful', 'posts_per_page' => 3, 'paged' => $paged );
$the_query = new WP_Query( $args ); ?>

<?php if ( $the_query->have_posts() ) : ?>
<?php
// the loop
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
Если имя категории не указывать, то всегда выводится 3 поста, и не проверяет, может в категории всего один пост. Можно сделать кучу циклов под конкретную категорию, но по моему это бред...
как мне получить id категории(кликнутой), записать ее в переменную и передать ее в массив array ?
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ответы на вопрос 2
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Не надо заморачиваться с кастомными лупами. Есть хук pre_get_posts для этих целей. В functions.php:
function your_function_name( $query ) {
    if( $query->is_main_query() && $query->is_category( 'your_category' ) ) {
        $query->set( 'posts_per_page' => 3 );
    }
}
add_action( 'pre_get_posts', 'your_function_name' );
Ответ написан
@PRC Автор вопроса
ac63730aef0b474198fb7c48d7e0492b.jpg
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы