WordPress ツールバー(ダッシュボードバー)に新しい項目を追加するにはadmin_bar_menuフックを使用する必要があります。簡単に理解するために、buddyPressのプロフィールページ WordPress ツールバーに追加する方法を考えてみましょう。
buddyPressのプロフィールページのURLは、 設定>バディプレス>ページの「会員」ページで設定したページのアドレスによって異なります。 手動で直接ページURLを設定できますが、bbPressのプロファイルページのURLとして次の関数を使用できます。
bp_loggedin_user_domain()
その後、次のようなコードを WordPress 関数ファイルに追加するようにします。
function buddypress_adminbar_profile($wp_admin_bar){ $bpsiteurl = bp_loggedin_user_domain(); $args = array( 'id' => 'buddypress-node', 'title' => 'プロフィール', 'href' => $bpsiteurl, 'meta' => array( 'class' => 'buddypress-node-class' ) ); $wp_admin_bar->add_node($args); } add_action('admin_bar_menu', 'buddypress_adminbar_profile', 75);
これにより、次の図のように、プロファイルのメニュー項目が WordPress ツールバー(ダッシュボードバー)に追加されます。
上記のようなコードでうまく動作するんですが、ここでの問題は、非ログインユーザーにもこのメニューが表示されることがあります。 この場合、ログインユーザーにのみ表示されるように if(is_user_logged_in()) 行を追加するようにします。
参考までに Polylangのような多言語プラグインを使用している場合はうまく動作しない場合があります。 (多言語サイトのためのプラグインを使用する固有のアドレスなどに関連し、予期せぬ問題が時々発生するようです。)
メニューの優先順位を指定:
上記のコードでは、数字「75」は優先順位を表します。 基本的な優先順位は次のとおりです(参照).
- wp_admin_bar_wp_menu - 10
- wp_admin_bar_my_sites_menu - 20
- wp_admin_bar_site_menu - 30
- wp_admin_bar_updates_menu - 40
- wp_admin_bar_comments_menu - 60
- wp_admin_bar_new_content_menu - 70
- wp_admin_bar_edit_menu - 80
コメントを残す