かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

WordPress 管理画面の固定バー(Admin bar)にカスタムボタンを設置したい

WordPress管理画面の上部にあるAdmin barにカスタムボタンを設置する方法のメモ

functions.php

<?php
add_action('admin_bar_menu', 'my_custom_admin_bar_button', 100);
function my_custom_admin_bar_button($wp_admin_bar) {
  $args = [
    'id'    => 'my_custom_button',
    'title' => '表示される文字',
    'href'  => '#',
    'meta'  => [
      'class' => ''
    ],
  ];
  $wp_admin_bar->add_node($args);
}

これでAdmin barにカスタムボタンが設置できました。
実際に表示されるボタンのIDはwp-admin-bar-というprefixが付くので#wp-admin-bar-<idに渡した値>という感じになります。

ボタンの表示される位置はadd_actionの第三引数の数字で設定します。(カスタム投稿を追加する時のメニュー位置と同じ要領)

  • 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

$wp_admin_bar->remove_node( $id )を使えばもともと表示されているメニューを消すことも出来る。
cf. Function Reference/remove node « WordPress Codex

表側のサイトでAdmin barを表示させなくする方法

表側のサイトでログインしててもAdmin barを表示しない方法。
functions.phpに下記を追加

functions.php

<?php
add_filter( 'show_admin_bar', '__return_false' );

 
WordPress触ってないとすぐ忘れる。


[参考]