• かちびと.net

    WordPressの管理バーに好みのソーシャルサイトのリンク集を含めるカスタマイズです。管理画面の利便性をあげて、利用しやすい環境を作ってあげたいですね。

    Kudos for

    WordPress jQuery
  • About This

    Web制作に役立つTips、チュートリアル、、マーケティングに役立つ情報などのリソースをほぼ毎日配信しています。宜しければメモ代わりにご利用下さい。詳しい情報はAbout me またはhumans.txtをご覧下さい。

    Kachibito.net is a community-based website for web designers and developers. The site includes a popular weblog, a design gallery, a open source software, design tips, and the various web-news.

  • Links

WordPressの管理バーに好みのソーシャルサイトのリンク集を含める

スポンサーリンク

WordPress3.1から管理バーが少し変わ
ったのですが、デフォルトではあまり
コンテンツが無く、ちょっと勿体無い
のでここに好きなリンク集を作って
あげると喜ばれるかもしれない、って
いう記事です。

管理画面の利便性を高めてあげるとクライアントさんも使いたくなるし、それでWebサイトも育ててくれて結果的に収益アップしてくれたら嬉しいなウヘヘ、という夢をみつつ、今日もチマチマとカスタマイズに励んでみます。

試しにソーシャルサイトのリンク集を含めてみる


↑ 特に目新しい事では無いんですが、こういう風にしてあげようじゃないか、という内容です。jsfiddleってソーシャルだっけ?って疑問はさておき。

こんな事言うと記事タイトルが破綻してしまいますが、別にソーシャルじゃなくてもいいと思います。管理画面でよく使う場所をまとめるとかもいいですね。

コード

コードです。functions.phpに以下を追記。

class add_my_sosial_menu {
  function add_my_sosial_menu()
  {
    add_action('wp_before_admin_bar_render', array($this, "my_sosial_links"));
  }

  function add_root_menu($name, $id, $href = FALSE)
  {
    global $wp_admin_bar;
    if ( !is_super_admin() || !is_admin_bar_showing() )
      return;

    $wp_admin_bar->add_menu( array(
    'id' => $id,
    'title' => $name,
    'href' => $href ) );
  }

  function add_sub_menu($name, $link, $root_menu, $meta = FALSE)
  {
    global $wp_admin_bar;
    if ( !is_super_admin() || !is_admin_bar_showing() )
      return;

    $wp_admin_bar->add_menu( array(
    'parent' => $root_menu,
    'title' => $name,
    'href' => $link,
    'meta' => $meta) );

  }

  function my_sosial_links() {
    $this->add_root_menu("ソーシャルサイト", "msl");
    $this->add_sub_menu("<img src='アイコン画像のパス' style='margin-right:10px;vertical-align:middle;'>Facebookページ", "https://www.facebook.com/example", "msl");
    $this->add_sub_menu("<img src='アイコン画像のパス' style='margin-right:10px;vertical-align:middle;'>Twitter", "https://twitter.com/#!/example", "msl");
    $this->add_sub_menu("<img src='アイコン画像のパス' style='margin-right:10px;vertical-align:middle;'>jsFiddle", "http://jsfiddle.net/user/dashboard/", "msl");
    $this->add_sub_menu("<img src='アイコン画像のパス' style='margin-right:10px;vertical-align:middle;'>tumblr", "http://example.tumblr.com/", "msl");
    $this->add_sub_menu("<img src='アイコン画像のパス' style='margin-right:10px;vertical-align:middle;'>google+", "https://plus.google.com/u/0/example/posts", "msl");
  }

}
add_action("init", "add_my_sosial_menu_init");
function add_my_sosial_menu_init() {
    global $add_my_sosial_menu; $add_my_sosial_menu = new add_my_sosial_menu();
}

空の親メニュー(add_root_menu)作って、ドロップダウンするサブメニュー内(add_sub_menu)にリンク集を作ります。アイコンの配置ごときでcss追加するの面倒なのでstyle属性でGOです。

リンク集は

  function my_sosial_links() {
    $this->add_root_menu("親メニューの名前", "msl");
    $this->add_sub_menu("<img src='アイコン画像のパス' style='スタイル'>リンクのテキスト", "URL", "msl");
  }

これを繰り返せば何個でも追加できます。アイコンは邪魔なら外してください。

尚、

add_action('wp_before_admin_bar_render', array(

add_action('admin_bar_menu', array(

にすれば一番左端に持っていけます。間に入れる、とかは分からないし需要も無さそうなので調べてないです。

他のも作ってみる


同じ要領でCODEXの検索用ボックスとかも作れちゃいますね。作れちゃいますねと言うか無理やり入れたんですが。

リンクは1つでいい、という場合

function add_new_item_in_admin_bar() {
global $wp_admin_bar;
$wp_admin_bar->add_menu(array(
'id' => 'new_item_in_admin_bar',
'title' => __('Google'),
'href' => 'http://www.google.co.jp/'
));
}
add_action('wp_before_admin_bar_render', 'add_new_item_in_admin_bar');

1個でいいならドロップダウンにする必要ないのでこれでOKです。

と言うわけで、こんな感じでクライアントさんが喜びそうな管理画面を作って差し上げてくださいませ。

コードはCODEXで調べました。
via:Function Reference/add menu « WordPress Codex

URL :
TRB :

Comments & Trackbacks (7)

  1. kakiflower

    貴重な情報ありがとうございます。

    上記の記事を参考にして、コンテンツ内の各メニューをドロップダウン形式にて作成することができました。

    が、ここで1つ壁に当たりました。

    閲覧時のユーザ権限が「管理者」の場合は問題ないのですが、「投稿者」「編集者」の場合はドロップダウン形式のメニューが表示されない状態となってしまいました。
    ※リンクが1つの場合は問題なく表示されていました。

    何か情報をお持ちでしたら、アドバイス頂けると幸いです。

    • シロ

      こんにちは、コメント有難う御座います。

      閲覧時のユーザ権限が「管理者」の場合は問題ないのですが、「投稿者」「編集者」の場合はドロップダウン形式のメニューが表示されない状態となってしまいました。

      これは、コード内で「is_super_admin()」と指定しているためです。このユーザー権限を変更すれば閲覧可能となります。

      権限のコードは下記リンク先の左メニュー「ユーザ情報」をご覧頂き、適切なユーザー権限に変更してください。
      http://elearn.jp/wpman/function/is_super_admin.html

      • kakiflower

        シロ様

        ご返信ありがとうございます。

        権限絡みとは予測しつつも、コードをしっかりと解読できておりませんでした。
        ご指摘通り、キーとなるのは、サンプルコードの以下部分のようですね。

        ————————————————————
        if ( !is_super_admin() || !is_admin_bar_showing() )
        ————————————————————

        上記箇所を変更することで希望の処理が行えました。
        色々と勉強させていただきます。

        ありがとうございました!!

        • シロ

          解決したようでなによりですー!

          is_***は他にも沢山あります。これを知っていると、様々な条件分岐に対応できますので、色々とトライしてみてくださいね。

          こちらこそ、結果のご報告有難う御座いました!

Twitter

Web制作に役立つそうなリソースを独断と好みで配信しています。

かちびと.netにリンクの無いトラックバックはお受けいていません。
コメントされる前にガイドラインをご覧下さい。

twitter facebook rss contact

Ads

Posts

Contact

Services