僕は、当サイトのフォーラムや、SimplicityフォーラムではbbPressというプラグインを利用しています。
実際に運営しているのがこちらのフォーラム。
シンプルな構造になっているのではじめての方でも使いやすいフォーラムプラグインだと思います。
ただ、テーマカスタマイズなどを行っていると、
bbPressが生成しているページでは処理を行いたくない
なんて場合も時々あります。
その時のために関数を作成したので、メモがてら紹介です。
目次
bbPressが生成しているページかどうかの確認関数
bbPressページかどうか確認するには、以下のPHPコードをテーマ(子テーマ)のfunctions.phpなどに貼り付けて利用します。
//bbPressがインストールされているか if ( !function_exists( 'is_bbpress_exist' ) ): function is_bbpress_exist(){ return class_exists( 'bbPress' ); } endif; //bbPressのページかどうか if ( !function_exists( 'is_bbpress_page' ) ): function is_bbpress_page(){ if (is_bbpress_exist()) { if (bbp_is_topic() || bbp_is_forum() || bbp_is_forum_archive() || bbp_is_single_forum() || bbp_is_forum_edit() || bbp_is_single_topic() || bbp_is_topic_archive() || bbp_is_topic_edit() || bbp_is_topic_tag() || bbp_is_topic_tag_edit() || bbp_is_reply()|| bbp_is_reply_edit() || bbp_is_single_reply() || bbp_is_favorites() || bbp_is_subscriptions()) { return true; } } } endif;
is_bbpress_exist関数は、bbPressプラグインがインストールされているかどうかを確認するための関数です。
is_bbpress_page関数は、bbPressプラグインが生成しているページかどうかを確認するための関数です。
is_bbpress_page関数内でis_bbpress_existの確認も行われているので、基本的にis_bbpress_pageを利用するだけで良いでしょう。
まとめ
今回作成したis_bbpress_page関数を利用することで以下のページかどうかを確認することができます。
- フォーラムページかどうか
- トピックページかどうか
- bbPressのアーカイブページかどうか
- bbPressの編集ページかどうか
これらのページで「何らかの処理を実行したい(したくない)」なんて場合は、今回作成した関数で条件分岐できるかと思います。