WordPress Показать случайные сообщения в то время как на странице - PullRequest
1 голос
/ 17 февраля 2011

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

Проблема заключается в том, что при использовании

'paged'=>$paged, 'posts_per_page' => 60, 'orderby'=>rand

каждая страница перемещает сообщение, и вы можете найти то же сообщение на бывшей.2-я и 7-я страницы.

Есть ли способ сначала случайным образом постить посты, а затем разбить их на страницы?Или рандомизировать посты за сессию или за ip?

1 Ответ

0 голосов
/ 18 февраля 2011

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

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

Каждый раз, когда посещается ваша домашняя страница, вы можете вызывать PHP-скрипт, который случайным образом генерирует список уникальных номеров, один раз для каждого сообщения (в вашем случае, 0-700).Вы могли бы затем изменить свою базу данных (либо добавив дополнительный столбец в строку сообщений, либо изменить / добавить существующий) с указанным случайным числом.Вы можете установить порядок по новому / измененному столбцу, таким образом гарантируя, что записи были рандомизированы для каждого посетителя на вашей странице, но при этом он никогда не будет отображать одно и то же сообщение дважды.Однако ... вам нужно проверить это, я никогда не изменял переменную 'orderby' в самом коде, так как мне никогда не требовалось.

Вы также можете попробовать сделать что-то подобное, как указано выше, но вместо этого изменить опцию orderby в бэкэнде (в отличие от кода), предполагая, что ваша тема дает вам опцию (что, я думаю, будет).

Надеюсь, это решит вашу проблему.

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