• Добрый день, столкнулся с такой ситуацией , необходимо выводить на главной странице рандомные записи.

    Использую query_posts ( array ( ‘orderby’ => ‘rand’, ‘posts_per_page’ => ’10’ ) ) всё замечательно ,но при обновлении страницы или переходе на 2 страницу и возвращении на 1 страницу ( используется wp_pagenavi()), записи не сохраняются ,а меняются на новые.

    Как это можно исправить??

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • вы хотите рандомные записи, но при этом хотите исправить именно рандомное появление записей?

    
    //случайные записи на главной start 
    function wph_random_order($query) {
    	if (is_admin() || !$query->is_main_query()) {
    		return;
    	}
            if ( is_home() ) {
    	    $query->set('orderby', 'rand');
            }
    }
    add_action('pre_get_posts', 'wph_random_order');
    //случайные записи на главной end
    

    Как это можно исправить??

    Начать с исправления query_posts. https://wpmag.ru/2014/query_posts-wordpress/

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

    так не бывает.
    рандом — всегда рандом.

    Видимо я не могу объяснить.
    Пример:
    Допустим, есть 5 записей.
    1 2 3 4 5
    Я собираю рандомный массив из записей.
    Получаю 4 3 1 2 5.
    На странице выводится по 2 записи.
    получается на 1 странице будет 4-3
    на 2 странице 1-2 и т.д
    Но у меня выходит, что массив генерируется каждый раз новый, когда я перехожу на новую страницу, а мне б отображать сгенерированный в первый раз)

    добавьте в условие is_paged()

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

    Тогда это будет не рандомный вывод. Вы понимаете что такое рандомный? Это вывод записей в СЛУ-ЧАЙ-НОМ, непредсказуемом порядке порядке. Именно в случайном и непредсказуемом!

    массив генерируется каждый раз новый

    Это и есть истинный «рандомный вывод»
    Значение слова random: беспорядочный, непреднамеренный, случайный, непредвиденный, непроизвольный, нечаянный.

    А если вам нужно изменить порядок вывода записей на произвольный, в нужной вам последовательности, — для этого (помимо манипуляций с датой создания записи) сущеструют различные плагины типа Reorder posts:
    https://ru.wordpress.org/plugins/reorder-post-within-categories/
    https://ru.wordpress.org/plugins/post-types-order/
    https://ru.wordpress.org/plugins/metronet-reorder-posts/

    • Ответ изменён 6 лет, 3 месяца назад пользователем O.
    • Ответ изменён 6 лет, 3 месяца назад пользователем O.
    • Ответ изменён 6 лет, 3 месяца назад пользователем O.
    • Ответ изменён 6 лет, 3 месяца назад пользователем O.
    • Ответ изменён 6 лет, 3 месяца назад пользователем O.
    • Ответ изменён 6 лет, 3 месяца назад пользователем O.
    • Ответ изменён 6 лет, 3 месяца назад пользователем O.

    Perdyllo (@perdyllo),мне не надо в нужной последовательности,мне надо именно в СЛУ-ЧАЙ-НОМ, беспорядочном, непреднамеренном порядке.НО! Что б переходе на следующую страницу записей, и последующем возврате на предыдущую страницу, они сохранились в той же последовательности, а не сгенерировались новые записи.

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    мне не надо в нужной последовательности,мне надо именно в СЛУ-ЧАЙ-НОМ, беспорядочном, непреднамеренном порядке.НО! Что б переходе на следующую страницу записей, и последующем возврате на предыдущую страницу, они сохранились в той же последовательности, а не сгенерировались новые записи.

    1. Если для каждого пользователя в отдельности, то записывать список ID в куки, при открытии получать список ID и выводить записи в нужном порядке.
    2. Если для всех один и тот же список, то можно список ID записывать, например, в transient или option и очищать при добавлении или удалении записей, чтобы список создался заново.

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

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