コメント欄をページ分割すると、1ページ目のコメント数が少ない
自分が管理しているサイトではよくWordpressのコメント欄で、「10コメント毎にページ分割」なんてやってます。そうすると、例えば11個目のコメントが付いたときに
1ページ目⇒最新のコメント1個
2ページ目⇒残りのコメント10個
とかとても不格好な見た目になるのが不満でした。来訪者さんに、「あー1個しかコメントついてない」みたいな誤解もされてしまったので、いい機会だから調べて解決してみましたよ!
コメント欄を降順にしつつ、1ページ目に最大限コメントを表示する
今までコメント欄の表示方法は、Wordpressのディスカッション設定で調節していましたが、comments.phpから手直し。 wp_list_comments();を使ってたところを下記のように修正しました。<?php
$comments_per_page = 10;
$comments = get_comments( array( 'status' => 'approve' ) );
wp_list_comments( array (
'per_page' => $comments_per_page,
'reverse_top_level' => false
), $comments );
?>
'style' => 'ol'とかは元のwp_list_comments();の表記をそのまま使ってください。ディスカッション設定は 「最初」のページをデフォルトで表示する を選びましょう。
あと
previous_comments_link⇒新しいページ
next_comments_link⇒古いページ
になるので、それもご注意ください。コメント投稿後のリダイレクトの設定
これで安心…と思いきや、一つ落とし穴が。色々弄ったせいで、コメント送信後に勝手にコメント欄の最終ページに飛んでしまうんです…。
こればっかりは調節方法が分からなかったのでちょっと力技ですが、functions.phpを弄って「お礼ページ」に飛ばしてしまいましょう。
function custom_comment_post_redirect( $location ) {
$redirect_to = get_site_url( null, '/thankyou' );
return $redirect_to;
}
add_filter( 'comment_post_redirect', 'custom_comment_post_redirect' );
この例では、http://サイトURL/thankyouというURLに飛ばしています。
もっと良い方法があるよ~という方がいらっしゃいましたら、Twitterで教えてください…。