Поддержка Проблемы и решения Записи в случайном прядке в категории

  • Как вывести посты в конкретной категории в случайном порядке (random)? Чтоб посты всегда выводились в случайном порядке, каждый раз при перезагрузке страницы категории.

    Мне предложили такой код:

    add_action( ‘pre_get_posts’, ‘rand_category’ );
    function rand_category( $query ) {
    if( is_category() ) {
    $query->set( ‘orderby’, ‘rand’ );
    }
    }

    В этом случае random работает во всех категориях. И есть ошибка: посты дублируются или лучше сказать заменяются и появляются посты одинаковые по два три раза. Помогите улучшить код?

Просмотр 10 ответов — с 1 по 10 (всего 10)
  • вы непременно хотите свой сайт затормозить?

    А еще есть какие то варианты ответа?

    Как вывести посты в конкретной категории в случайном порядке (random)?

    Создайте шаблон категории со своим Query и параметрами

    А еще есть какие то варианты ответа?

    Если вас не пугают возникшие тормоза и вам не нужен пажинатор постов, вставьте в своем коде вот в эту функцию if( is_category() ) параметром id категории, которую кастомизируете. Только перед этой строкой, чтобы в админке не рандомизировало, добавьте

    if (is_admin()) return;

    А что значит пожинатор постов?

    И как нам связаться, может вы мне поможете, я не смогу сама дописать код. Я буду рада заплатить)

    И как нам связаться, может вы мне поможете, я не смогу сама дописать код. Я буду рада заплатить)

    на форуме запрещено предложение или запрос оплаты, а также публикация данных для связи.
    кроме раздела Поиск специалистов

    Модератор Yuri

    (@yube)

    ведь вопрос простейший

    Был бы, если бы не «И есть ошибка: посты дублируются или лучше сказать заменяются и появляются посты одинаковые по два три раза.» Если я правильно понял, ТС хочет, чтобы посетителю показывались не просто случайные посты, а каждый раз при перезагрузке страницы или пагинации были новые, еще не показанные этому посетителю. А это уже отнюдь не тривиальная задача (для сайта). Причем не только для реализации, но и еще на уровне составления ТЗ.

    А почему бы не загуглить, ведь вопрос простейший и ответов на него хватает.

    add_action( 'pre_get_posts', 'rand_category' );
    function rand_category( $query ) {
    if(!is_admin() && $query->is_main_query() && is_category(8) ) {
    $query->set( 'orderby', 'rand' );
    }
    }

    8 это id категории

    qwert555

    (@qwert555)

    Спасибо. А если несколько категорий, то через запятую прописывать?

    add_action( 'pre_get_posts', 'rand_category' );
    function rand_category( $query ) {
    if(!is_admin() && $query->is_main_query() && is_category(8,20,35) ) {
    $query->set( 'orderby', 'rand' );
    }
    }

    Yuri

    (@yube)

    Надо чтобы посты при перезагрузке менялись местами, в случайном порядке. Ошибка с этим кодом такая что количество постов в категории остается тем же, но два поста одинаковых может быть, исчезает 1-2 поста из за этого, подменяются дублированным.

Просмотр 10 ответов — с 1 по 10 (всего 10)