サポート » 使い方全般 » コメントのランダム表示は可能でしょうか?

  • 解決済 greon999

    (@greon999)


    投稿のランダム表示というのはよく見かけますし、
    query_posts(‘orderby=rand’);
    などで実践できることは知っています。

    しかし、コメントのランダムというのはどんなに探しても方法が見つからなかったのでこちらで質問させていただきました。

    コメント日付を基準に、昇順、降順なら
    wp_list_comments( array( “reverse_top_level” => true ) );
    などで出来るようですが、
    wp_list_comments(‘orderby=rand’);
    としたところで、当然かもしれませんが効果なしです。

    コメントの表示順をコメント日付に関わらずランダムに表示する方法ご存知でしたら教えてください。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 本家フォーラム(英語)ですが似た話がありましたので参考になれば。
    [resolved] How can I display a random comment from a PAGE on my site on home?

    これを次のように利用すればよいのではないかと思います。

    1. ある投稿や固定ページのコメント一覧を取得する
    2. ランダムに並べ替える
    3. 一つずつ表示する
    モデレーター jim912

    (@jim912)

    コメントのデータ取得は、wp_list_comments で行われる訳ではないので、wp_list_comments でのパラメーターによる順序指定はできません。

    では、いつ取得が行われているかというと、comments_template で、コメントのテンプレートを呼び出す際に、合わせてコメントデータの取得を行っています。
    また、その取得の際に、comments_array というフィルターフックを通っていますので、このフィルターを用いて、コメントの順番をランダムに入れ替えることが可能なはずです。

    function random_comments( $comments ) {
    	shuffle( $comments );
    	return $comments;
    }
    add_filter( 'comments_array', 'random_comments' );

    jim912 さん、フィルターがあるんですね、、、不勉強で失礼しました。

    トピック投稿者 greon999

    (@greon999)

    >jim912さん
    functions.phpにその記述をすることでランダムに表示することができました!
    大変助かりました。
    誠にありがとうございました!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「コメントのランダム表示は可能でしょうか?」には新たに返信することはできません。