エス技研WordPress専科

WordPressの基本的な使い方から SEOの対応、プラグイン情報、カスタマイズ方法を解説します。


WordPress管理画面のメニューに項目を追加する方法解説

      2015/06/15

WordPressの管理画面のメニューに項目を追加する方法

 

管理画面のメニューは menu-header.phpだけども...

 
WordPressの管理画面のメニューは、「/wp-admin/menu-header.php」ファイルで処理されていますので、直球勝負ならこのファイルを変更することで対応できます。
 
このファイルの下の方にある

do_action( 'adminmenu' );
?>

の下あたりに、下記のような感じで HTMLを追加すれば、メニューを追加することができます。
—————

<div class="wp-menu-toggle"><br /></div>
<li class="wp-has-submenu menu-top menu-top-last" id="menu-settings">
  <div class='wp-menu-image'><a href='options-general.php'><br /></a></div>
  <div class="wp-menu-toggle"><br /></div>
  <a href='index2.php' class="wp-has-submenu menu-top menu-top-last" tabindex="1">親メニュー</a>
  <div class='wp-submenu'>
    <div class='wp-submenu-head'></div>
    <ul>
      <li class="wp-first-item"><a href='index2.php' class="wp-first-item" tabindex="1">子メニュー</a></li>
      <li class="wp-first-item"><a href='index3.php' class="wp-first-item" tabindex="1">子メニュー</a></li>
    </ul>
  </div>
</li>

—————
 
ですが、このファイルは、WordPressのバージョンアップを行うと、差し替えられてしまうファイルですので、基本的には修正を行わないファイルです。
(上記の HTMLを追記しても、バージョンアップの度に消えてしまいますので、その都度対応が必要になってきます。)
 
 

「add_action ( ‘admin_menu’, ‘function名’ );」でメニューを追加する

 
ではどうするか?
 
WordPressには、管理画面のメニューに項目を追加する機能も用意されていますのでそれを使って項目を追加します。
 
具体的には「functions.php」に
————-
add_action ( ‘admin_menu’, ‘function名’ );
————-
の関数を用いて、メニューを追加していきます。
 
※functions.phpがある場所
/{WordPressがインストールされている場所}/wp-content/themes/{テーマ名}/functions.php
  詳細は「WordPressの functions.phpがある場所」を参照
 
 


 

「add_action ( ‘admin_menu’, ‘function名’ );」のサンプルコード

 
—————————-

add_action ( 'admin_menu', 'artist_add_pages' );

function artist_add_pages () {
  add_menu_page('テストタイトル', 'テストメニュー', 8, 'index2.php', 'test_page');
  add_submenu_page('index2.php', 'テストタイトルサブ', 'テストメニューサブ', 8, 'index3.php', 'test_page');}

function test_page() {
    echo '<h2>メニュー追加テストページ</h2>';
}

—————————-
 
上記のコードを「functions.php」にコピペすることで、下記の様にメニューが追加されます。
 
20140616_wp_1
 
また、リンク先の URLは「http://*******/wp-admin/admin.php?page=index2.php」となり、リンク先のページのタイトルは「<title>テストタイトル ‹ テスト — WordPress</title>」となっています。
 
 
add_menu_page関数、add_submenu_page関数の解説は、以下の通りです。
 
add_menu_page関数は、トップレベルのメニュー追加(メニューの一番下に追加)の際に利用します。
add_submenu_page関数は、上記で追加した親メニューの子メニューとして追加する際に利用します。
 
引数の順番と意味は、下記の通りとなっています。

add_menu_page('HTML のページタイトル', 'メニュータイトル', 'ユーザレベル', 'リンク先', 'リンクの引数');

add_submenu_page('親メニューのリンク先', 'HTML のページタイトル', 'メニュータイトル', 'ユーザレベル', 'リンク先', 'リンクの引数');

 
HTML のページタイトル:リンク先のページの titleタグに編集される値
メニュータイトル:管理画面のメニューに表示されるテキスト
ユーザレベル:ユーザの管理権限によって表示する、しないの条件設定
    「ユーザーの種類と権限」については、オフィシャルサイトを参照してください。
    http://wpdocs.sourceforge.jp/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E7%A8%AE%E9%A1%9E%E3%81%A8%E6%A8%A9%E9%99%90
リンク先:リンク先のファイル名
リンクの引数:リンク先のファイル名に引数を指定する場合に指定
親メニューのリンク先:リンク先のファイル名に引数を指定する場合に指定
 
※add_menu_page関数は /wp-admin/includes/plugins.php 893 行目で定義されています。
※add_submenu_page関数は /wp-admin/includes/plugins.php 998 行目で定義されています。
 
 
上記サンプルの 4行目の add_menu_pageの 5番目の引数を nullにして下記の様に設定することで、リンク先の URLを「http://*******/wp-admin/index2.php」にすることもできます。
 

  add_menu_page('テストタイトル', 'テストメニュー', 8, 'index2.php', '');

 
 

項目ごとにメニューを追加する方法

 
WordPressの管理画面メニューには、add_menu_page関数、add_submenu_page関数以外にも多くの関数が用意されています。
それぞれの項目で、サブメニューを設定したい場合は、上記で説明した「add_submenu_page」を使うことで設定することができます。
 
—————————-

function artist_add_pages () {

  // トップレベルメニュー追加(メニューの一番下に追加される)
  add_menu_page('テストページタイトル', 'テストメニュー', 8, 'sample.php', 'test_page');

  // 「テストメニュー」にサブメニューを追加
  add_submenu_page('sample.php', 'テストページタイトル', 'サブメニュー', 8, 'sub_test.php', 'test_page');

  // トップレベルメニュー追加(コメントの下に追加される)
  add_object_page('テストページタイトル', 'テストメニュー2', 8, 'sample2.php', 'test_page');

  // トップレベルメニュー追加(設定の下に追加される)
  add_utility_page('テストページタイトル', 'テストメニュー3', 8, 'sample3.php', 'test_page');

  // 「ダッシュボード」の項目にサブメニュー追加
  add_dashboard_page('テストページタイトル', 'ダッシュボードメニュー', 8, 'test', 'test_page');

  // 「投稿」の項目にサブメニューを追加
  add_posts_page('テストページタイトル', '投稿メニュー', 8, 'test', 'test_page');

  // 「ページ」の項目にサブメニューを追加
  add_pages_page('テストページタイトル', 'ページメニュー', 8, 'testpage', 'test_page');

  // 「メディア」の項目にサブメニューを追加
  add_media_page('テストページタイトル', 'メディアメニュー', 8, 'test', 'test_page');

  // 「コメント」の項目にサブメニューを追加
  add_comments_page('テストページタイトル', 'コメントメニュー', 8, 'test', 'test_page');

  // 「プラグイン」の項目にサブメニューを追加
  add_plugins_page('テストページタイトル', 'プラグインメニュー', 8, 'test', 'test_page');

  // 「ユーザー」の項目にサブメニューを追加
  add_users_page('テストページタイトル', 'ユーザーメニュー', 8, 'test', 'test_page');

  // 「設定」の項目にサブメニューを追加
  add_options_page('テストページタイトル', '設定メニュー', 8, 'test', 'test_page');

  // 「ツール」の項目にサブメニューを追加
  add_management_page('テストページタイトル', 'ツールメニュー', 8, 'test', 'test_page');

  // 「外観」の項目にサブメニューを追加
  add_theme_page('テストページタイトル', '外観メニュー', 8, 'test', 'test_page');

}

—————————-

 - WordPressの基本設定

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload the CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

WordPressの確認画面付フォーム MW WP Formの使い方詳細解説

WordPressの確認画面付お問い合わせフォームプラグイン「MW WP Form」の詳細解説をしています。

Contact Form 7使い方詳細解説・WordPressメールフォーム

WordPressの標準お問い合わせメールフォームである Contact Form 7の詳細な使い方の解説です。

Contact Form 7の使い方・引数で情報を受け渡す方法

Contact Form 7で引数の情報をフォームに編集する方法を解説します。

WordPress初心者向け フォルダ構成・データベース構成解説

BackWPupその11。バックアップを取るために必要なファイル、データベースの解説をします。

WordPressの管理画面ログインURLファイルにBasic認証を設定する方法解説

管理画面のログインURLにBasic認証を追加することでさらなる極めて高いセキュリティ向上の方法を解説します。

FC2からWordPressに引越。インストールなど必要な全てを解説

FC2からWordPressへの引越し解説。内容は引越しメインではなくこれからWordPressでブログを構築する方向けのブログ構築の解説記事です。

WordPressのカスタムフィールド、カスタム投稿、カスタムタクソノミーとは?

WordPressのカスタムフィールド、カスタム投稿、カスタムタクソノミーの基本的な内容を解説。お薦めのプラグインと編集方法も解説しサンプルソースなども紹介。

WordPress データベースを管理するための強い味方のプラグイン WP-DBMANAGER

データベースを管理するための強い見方のプラグイン「WP-DBMANAGER」の使い方の説明です。

WordPressのCrayon Syntax Highlighterの使い方

PHP、HTMLなどのソースコードを紹介する際に見やすく編集してくれる Crayon Syntax Highlighterの設定の方法、利用方法の解説です。

WordPress初心者向け講座・詳細解説データベースとは何か?

データベースとは何か?を言葉の意味の説明なども含めエクセルと比較しながら説明しています。


Warning: Trying to access array offset on null in /home/ss-giken/s-giken.net/public_html/wordpress/wp-content/plugins/amazonjs/amazonjs.php on line 637