regasolov20 20.05.2023 18:04

Как настроить вывод случайной записи на главной странице WordPress?

Здравствуйте! У меня возникла проблема с настройкой вывода случайной записи на главной странице WordPress. Я бы хотел, чтобы каждый раз при обновлении главной страницы отображалась случайная запись из моего блога.

Я пробовала использовать следующий код:


$args = array(
    'orderby'        => 'rand',
    'posts_per_page' => 1,
);
$query = new WP_Query( $args );

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // Вывод данных записи
    }
    wp_reset_postdata();
}

Однако, при каждом обновлении страницы выводится одна и та же запись, а не случайная. Что я делаю не так? Может быть, есть другой способ настроить вывод случайной записи на главной странице WordPress?

Буду благодарна за вашу помощь!

Ответы:

elenaP20 20.05.2023 18:11
Вам стоит использовать другой параметр для генерации случайной записи в WordPress.
sami40nov 20.05.2023 18:27
Попробуйте использовать функцию mt_rand() вместо 'rand' для получения случайного числа в WordPress.
DrP3t3r89 20.05.2023 18:51

Проблема с выводом случайной записи на главной странице WordPress может возникать из-за кеширования запроса на сервере. Когда вы используете функцию WP_Query с параметром 'orderby' => 'rand', WordPress генерирует случайное число, которое затем используется для сортировки результатов запроса. Однако, при повторных запросах это число может сохраняться в кеше сервера, что приводит к тому, что вы каждый раз получаете одну и ту же запись.

Для решения этой проблемы можно использовать специальный параметр 'cache_results' со значением false. Это отключит кеширование запроса и гарантирует получение случайной записи при каждом обновлении страницы. Вот как выглядит исправленный код:


$args = array(
    'orderby'        => 'rand',
    'posts_per_page' => 1,
    'cache_results'  => false,
);
$query = new WP_Query( $args );

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // Вывод данных записи
    }
    wp_reset_postdata();
}

Также, в зависимости от вашего шаблона или настроек WordPress, кеширование может быть включено на уровне темы или плагина. В этом случае, вам может потребоваться обратиться к разработчику темы или плагина для получения дополнительной помощи.

Надеюсь, это поможет вам решить проблему с выводом случайной записи на главной странице WordPress!


Добавить ответ