【bbpress】トピックのコメント一覧を新着順に並び替える方法

こんにちは、ゾノ( @ozonosho )です。

今回の記事ではwordpressの掲示板プラグイン「bbpress」においてトピックのコメント一覧を新着順に並び替える方法をご紹介します。

bbpressの標準設定だとコメント一覧は古い順に並ぶようになっていて、並び順を変更する機能や設定は備わっていないんですよね。

そんなわけで、コメント一覧を新着順に並び替えたい方は今回紹介する方法を試してみてください。

bbpressでトピックのコメント一覧を新着順に並び替える方法

実装は下記の2段階でおこないます。

  1. functions.phpにて並び順変更の処理を追加する
  2. コメント投稿後のリダイレクト先を変更する

それぞれ見ていきましょう。

①functions.phpにて並び順変更の処理を追加する

コメント一覧の並び順を変更するには、function.phpに下記のような関数を用意してください。

//bbpress:コメントを新着順に変更
function rew_date_topic_order( $args= array() ) {
  $args['orderby']='date';
  $args['order']='DESC';
  return $args;
}
add_filter('bbp_has_replies_query','rew_date_topic_order');

これでトピックページのコメント一覧が新着順に変更されます。

②コメント投稿後のリダイレクト先を変更する

コメント一覧を新着順に変更したら、次にコメント投稿後のリダイレクト先を変更します。

たとえばコメント一覧が3ページに及ぶ場合、bbpressの元々の機能だとコメント投稿後はコメント一覧の3ページ目が表示されるトピックページに飛びます。コメントが古い順でしたら3ページ目に飛ぶことで自分が投稿したコメント(=最新のコメント)を確認できるのでそれで良いのですが、今回コメントを新着順に変更したので3ページ目に飛ばされてしまうと自分が投稿したコメントを確認できないんですよね。

実装方法は簡単で、プラグイン内の下記ファイルを編集します。

/wp-content/plugins/bbpress/includes/replies/functions.php

関数「bbp_new_reply_handler」においてコメント投稿の処理が記述されているので、この関数の最後らへんにあるリダイレクト先を変更します。

具体的には、444行目ぐらいにあるwp_safe_redirect( $reply_url )の直前に下記のソースを追記してください。

//コメントを新着順にしたのでトピックページにリダイレクトさせる
$reply_url = get_permalink( $topic_id );

これでコメント投稿後に新着コメントが表示されるページへリダイレクトされます。

おわりに

以上、今回の記事ではwordpressの掲示板プラグイン「bbpress」においてトピックのコメント一覧を新着順に並び替える方法を紹介させていただきました。

つくりばのことが気になりましたか?

つくりばは、ココトモ・未来地図を自社で10年以上運営してきた知見をもとに、相談・コミュニティの開発と運営を支援しています。いきなりのご相談でなくて大丈夫です。まずは私たちの実績や考え方をご覧ください。

つくりばについて知る

← WordPressの一覧へ戻る

Webサービスの課題を、まずは無料相談で整理しませんか。

既存サービスの改善、新規立ち上げ、運用サポート、予算内での優先順位づけなど、今の状況に合わせてじっくりお話を伺います。まだ形になっていない段階のご相談も大丈夫です。

  • videocamオンライン対応
  • forum課題整理だけでも歓迎
  • payments概算費用の目安がわかる
無料相談を申し込む