WordPresssテーマ「Cocoon」を利用していると管理者でログイン中に画面上部に管理者向けのメニューであるアドミンバー(admin-bar)に「管理メニュー」が表示されます。
「管理メニュー」にはダッシュボード・投稿一覧・固定ページ一覧…などへのリンクがあり使い勝手が良いため使用頻度が高いのですが、カスタム投稿を追加した場合にはそのカスタム投稿が自動的はされません。
その「管理メニュー」にカスタム投稿タイプ(編集画面へのリンク)を追加したいと思ったことはありませんか?
今回はその管理メニューに画面にカスタム投稿を追加する方法について記載します。
Cocoonのadmin-barの管理メニューにカスタム投稿タイプのリンクを追加するソースコード
Cocoonの管理者向けの「管理メニュー」がどのように追加されているか理解するために、cocoon > lib > admin.phpのファイルを確認してみると、add_action(‘admin_bar_menu’, ‘customize_admin_bar_menu’, 9999);という風にadmin_bar_menuにフックしていることがわかりました。customize_admin_bar_menu()関数の引数$wp_admin_barにadd_menuしてあげることで対応が可能のようです。
今回はカスタム投稿「food」を例にして追加します。
以下のようなソースコードをCocoonの子テーマのfunctions.phpに追加します。
function ictyorozu_customize_admin_bar_menu($wp_admin_bar) {
$wp_admin_bar->add_menu(array(
'parent' => 'dashboard_menu', // 親メニューID
'id' => 'dashboard_menu-posts-food', // 子メニューID
'meta' => array(),
'title' => __( 'Food', THEME_NAME ), // ラベル
'href' => admin_url('edit.php?post_type=food') // ページURL
));
}
add_action('admin_bar_menu', 'ictyorozu_customize_admin_bar_menu', 10000);
ソースコードの補足
管理メニューにカスタム投稿を追加する際に気を付けるポイントは、idに指定する文字列dashboard_menu-posts-xxxxのxxxx箇所と、hrefに指定する文字列admin_url(‘edit.php?post_type=xxxx’)のxxxx箇所をカスタム投稿のスラッグを合わせることです。今回のカスタム投稿foodの場合であればfoodを入力するということになります。
また、Cocoonの本体のフック時に優先度9999が指定されていますので、10000以上を指定してあげることで、管理メニューの一番下(ダッシュボード・投稿一覧・固定ページ一覧…Food)に追加することが可能です。
優先度を9999に設定したり省略すると、管理メニューの一番最初(Food・ダッシュボード・投稿一覧・固定ページ一覧…)に追加されますので、その点は使い勝手を考慮して追加してください。
以上、Cocoonのadmin-barの管理メニューにカスタム投稿タイプのリンクを追加する方法についての紹介でした。
中田勝久 ICTよろず相談所ではWordPressの修正・機能追加をはじめ、WordPressに関するお困りごとへの対応を承っております。WordPressに関するご相談はお問い合わせからご連絡ください。
コメント