前提・実現したいこと
新しい順に表示し、返信部分は古い順にしたいです。
プラグインは使わない方法が知りたいです。
説明が下手で伝わらなかったら申し訳ないです。
理想はappmediaのコメント欄です。
https://appmedia.jp/fategrandorder/96261
現在のコメント数が8個だとしたら、このようにしたいです。
【1ページ目】
コメント8
---------
コメント7
---------
コメント6
-子コメント1
--孫コメント1
--孫コメント2
-子コメント2
--孫コメント1
---------
コメント5
---------
コメント4
---------
次>
【2ページ目】
コメント3
---------
コメント2
---------
コメント1
---------
<前
【ディスカッション設定】
1ページあたり「5」件のコメントを含む複数ページに分割
「最後」のページをデフォルトで表示する
「新しい」コメントを各ページのトップに表示する
↑こうすると並び順は理想なのですが、
1ページ目に3個のコメント、2ページ目に5個のコメントになり、
ページ送りが 次へ ではなく 前へ となってしまいます。
関係あるか分かりませんが comments.php 内の wp_list_comments はこうなっています。
(これも検索で見つけたものをほぼコピペなのですが、どこのサイトを参考にしたのか分からなくなりました)
php
1wp_list_comments(array( 2 'walker' => null, 3 'max_depth' => '', 4 'style' => 'ol', 5 'callback' => 'xxxxx', 6 'end-callback' => null, 7 'type' => 'all', 8 'reply_text' => '返信', 9 'page' => '', 10 'avatar_size' => 32, 11 'format' => 'html5', 12 'echo' => true 13));
試したこと
http://s-hiasa.ddo.jp/wp/wparticle/commentneworder/
php
1if (!is_admin()) { 2 function my_get_comments($query){ 3 $query->query_vars['orderby'] = 'comment_date'; 4 $query->query_vars['order'] = 'DESC'; 5 } 6 add_action( 'pre_get_comments', 'my_get_comments' ); 7 function my_comment_post_redirect( $location, $comment ) { 8 $location = get_permalink( $comment->comment_post_ID ); 9 return $location; 10 } 11 add_filter( 'comment_post_redirect', 'my_comment_post_redirect', 10, 2 ); 12} 13
ですが、こちらの方法では返信まで新しいものが上になってしまいます。
他に検索でヒットしたものは片っ端から試しましたが、どれも理想にはなってくれません。
機械翻訳して英語などでも調べましたが、調べ方が悪いのか、自力では解決できませんでした。
appmediaはソースを見る限りWPでできていると思うので、この並べ方ができないということはないと思うのですが、お手上げです。
どなたか助けてください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。