WordPressでコメントの並び替えカスタム方法【無プラグイン】

WordPressでコメントの並び替えカスタム方法【無プラグイン】

WordPressはデフォフォルトでコメント機能が付いています。
そのまま使用している人もいれば、掲示板のように使用しているなんてサイトも見かけます!

そんな時、コメントを並び替えたいけど理想の順番にならないなんてことも。そんなことにならないためにワードプレスのコメントの並び替えを解説とともに、自由に並び替えする方法をご紹介します。

WordPressのコメント並び替えをする

WordPressにデフォルトでついているコメントの並び替え機能を利用する際は、管理画面サイドバーの「設定」>「ディスカッション」から行います。

画像の赤枠にチェックを入れると1ページに表示されるコメント数が設定することができ、複数ページに分割して表示されるようになります。
ここでページを複数に分割していなければ、青枠の「古いor新しい」コメントを各ページのトップに表示する。を変えるだけでシンプルに新しい順か古い順でコメントを並び替えができます。

しかし、ページを複数に分割しているときに注意が必要です。設定したつもりでも実は思うように並び替えが出来ていなかったなんてことになりかねます。

WordPressのコメント並び替えルール

まずは複数ページに分割しているときに、「古いor新しい」でコメントを並び替えしたときにどうのような順番で表示されるのか見てみましょう。

複数ページに分割で古い順

これは特に問題ないかと思います。
1ページ目に一番上に、古いコメントが表示され順に新しくなっていきます。

複数ページに分割で新しい順

この設定が一番あれ?となりやすいです。
これはページの中の並び順を変更するだけでページをまたいでの並び順は変更してくれません。

言葉で説明も難しいので画像をご覧ください。

あれ?想像していたのとちょっと違う。なんて思っているあなたはこんな風に表示されると思っていませんでしたか?

実は、上記のような並び替えはデフォルトの機能だけでは実装できないのです。
しかし安心してください!コメントを自由に並び替えする方法をご紹介します!

プラグイン無しでコメントの並び替えをカスタムする

コメントには並び替え変更できるフィルターフックが登録されているのでこれを使用します!

comments_template_query_args

functions.phpに以下の記述を追加します。

function change_comments_order($comment_args) {
	$comment_args['order'] = 'desc';
	return $comment_args;
}

add_filter('comments_template_query_args', 'change_comments_order', 10, 1);

たったこれだけで、コメントの並びを降順(新しい順)に変更することができます。

フィルターポイント「comments_template_query_args」の詳細についてはコチラを参照してください。

「orderby」や「post_id」も渡ってきているので、日付以外で並び替えたり、特定の投稿ページだけ並び替えしたりすることが可能です!