先日、BuddyPressに関するカスタマイズを行っているときに、「BuddyPress支配下のページ」と「通常のWordPressページ」を分岐する必要が出てきました。
なので、BuddyPressのPHPファイルの中に、bp_is_buddypress_page()的な関数を探したのですが、見つかりませんでした。
その他にも、いろいろな関数の組み合わせを試したのですが、うまくいかず数時間ハマりました。
ただ、よくネットを調べたら、手軽にbp_is_buddypress_page()関数を実現できる方法があったのでメモがてら紹介。
目次
BuddyPressページかどうかを切り分ける関数
BuddyPressプラグインには、「BuddyPressページ」と「通常WordPressページ」を切り分ける関数がなかったので、作成してみました。
//BuddyPressページかどうか if ( !function_exists( 'bp_is_blog_page' ) )://BuddyPressの関数が存在しているか確認 function bp_is_buddypress_page(){ return !bp_is_blog_page(); } endif;
BuddyPressには、「WordPressのブログページか」を切り分けるbp_is_blog_page()関数は用意されていました(この関数名でそういった機能があるとは思わなかった)。
なので「BuddyPressページかどうか」は、!bp_is_blog_page()のようにして条件を反転すれば良いだけのことでした。
分かってしまえば単純なんですが、これを見つけ出すまでに、結構ハマりました。
参考にしたページはこちら。
参考 Topic: How do I detect whether I’m on a BuddyPress page? · BuddyPress.org
まとめ
ずっと「BuddyPressページかどうか」を判別するコードばかりBuddyPressコアファイル内を探していました。
まさか、「WordPressページかどうか」の関数が用意されていようとは。
タネが分かれば簡単なんですが、プログラムをしていると、こういうハマりは結構あるので記録。