2016-07-11 4 views
1

У меня есть категория с 20 сообщениями, и я хотел бы перетасовать сообщения на странице для каждого отдельного пользователя, который посещает блог.Wordpress: Randomize Posts & Keep Order on Reload

Я знаю, что я могу использовать это для рандомизации сообщения:

<?php query_posts('orderby=rand');?> 

Но как сделать так, чтобы порядок после Randomize поэтому его не постоянно chagning на обновления?

+1

Самый простой способ - сохранить эти идентификаторы в указанном порядке в файле cookie, я думаю. Или сохраните эту сторону сервера с идентификатором ссылки внутри файла cookie ... Но затем вы можете повторно заказать сообщения в следующем посещении, если cookie задается с помощью PHP. По крайней мере, если вы всегда показываете одни и те же записи, иначе вы можете использовать параметр 'post__in' для выбора тех же сообщений, что и раньше. Другое решение может заключаться в написании пользовательского запроса в Wordpress, поэтому вы можете использовать 'FIELD()' для сортировки сообщений в определенном порядке: http://dba.stackexchange.com/questions/109120/how-does-order-by -field-in-mysql-work-insideally –

+0

@ErikvandeVen Если я установил куки-файл, как мне связать куки-файл с порядком, в котором находятся сообщения, чтобы он не изменялся при перезагрузке? –

ответ

0

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

[12344,13413,13421,44445,12342] 

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

В вашем интерфейсе вы можете проверить, установлен ли файл cookie, если вы не просто получаете сообщения в случайном порядке. Если файл cookie установлен, вы можете показать их следующим образом:

query_posts(array('post__in' => $_COOKIE['cookie'], 'orderby' => 'post__in')); 
+0

Мне нужно вручную хранить файлы cookie или есть другой способ? –