2016-07-11 15 views
1

私は20の投稿でカテゴリを持っており、そのブログを訪れた個々のユーザーごとにページの投稿をシャッフルしたいと思います。Wordpress:投稿のランダム化とリロード時の注文の保存

私は記事をランダム化するためにこれを使用することができます知っている:

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

しかし、どのように私はそのは常にリフレッシュにchagningないそのランダマイズした後、秩序を保つのですか?だから、

+1

最も簡単な方法は、これらのIDをこの順番でクッキーに保存することです。または、クッキー内部に参照IDを持つサーバー側を保存してください...しかし、PHPを使用してクッキーが設定されている場合は、次の訪問時にポストを並べ替えることができます。少なくとも同じ投稿を表示する場合は、 'post__in'パラメータを使用して以前と同じ投稿を選択することができます。もう1つの解決策は、Wordpress内にカスタムクエリを書くことで、FIELD()を使って特定の順序で投稿を並べ替えることができます:http://dba.stackexchange.com/questions/109120/how-does-order-by -field-in-mysql-work-internal –

+0

@ErikvandeVenもし私がクッキーを設定すると、そのクッキーを、そのポストが入っている順番に結び付けることができます。 –

答えて

0

私はあなたのクッキーの結果がどのように見えるかもしれませんので、最も簡単な方法は、クッキーにその順序でそれらのIDを保存することです、言ったように:

[12344,13413,13421,44445,12342] 

あなたが内部のIDの順序を救うことができますクッキーの中に参照を保存してください。もう少し安全ですが、もう少し仕事があります。私は知らないのですが、投稿のIDはフロントエンドのどこかで入手できますので、その場合はクッキーの中に保存することをお勧めします。

フロントエンドでは、投稿をランダムに取得するだけでなく、Cookieが設定されているかどうかを確認できます。クッキーが設定されている場合は、次のように表示することができます。

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

私は手動でクッキーを保存する必要がありますか、それとも別の方法がありますか? –

関連する問題