Поддержка Проблемы и решения Архив записей

  • На сайте 2 рубрики: Новости, Приколы.
    Хочу, чтобы в архиве записей, выводились только Новости. Для этого в archive.php следующий код:

    <?php 
    $query = new WP_Query('category_name=news&year='.$year.'&monthnum='.$monthnum.'');
    if ( $query->have_posts() )
    {
    while ( $query->have_posts() ) : $query->the_post();
    the_title();
    endwhile;
    }
    else
    {
    echo 'Ошибка! Записей за этот период не обнаружено.';
    }
    ?>

    Предположим, что в январе 2016 года — 40 записей. Из них 5 — Новости, 35 — Приколы. Получается, что выводится 5 записей из категории Новости. При этом снизу плагин WP-PageNavi показывает 4 страницы. Хотя 5 записей располагаются на 1 странице. Видимо WP передает, что 40 записей и плагин делит на 4 страницы, хотя мне нужна 1 страница, на которой только 5 записей из категории Новости.

    Скажите, как исправить?

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • верните код archive.php как он был, а потом воспользуйтесь кодом:

    http://www.wphook.ru/cats/remove-posts-category.html

    если совсем точно, там вам нужно что-то типа:

    
    //исключение записей рубрик из архива start
    function wph_remove_from_archive($query) {
        if ($query->is_archive) 
            {$query->set('cat','-7');}
        return $query; 
    }
    add_filter('pre_get_posts','wph_remove_from_archive');
    //исключение записей рубрик из архива end
    

    где 7 это id исключаемой рубрики.
    тогда и плагины пагинации будут правильно считать число записей.

    Спасибо! То что нужно. Интересно, почему так. Почему нужны эти хуки, если LOOP должен выполнять эту функцию

    потому что вам надо там задавать еще posts_per_page и прочее.

    верните код archive.php как он был, а потом воспользуйтесь кодом:

    рано похвалил. код работает. но теперь даже в категории Приколы записи не показываются. хотя категория Приколы не относится к Архивной записе

    к архивам в WordPress относятся страницы рубрик, меток, авторов и дат.
    поменяйте is_archive на нужный вам условный тег.

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Архив записей» закрыта для новых ответов.