WordPress管理画面の設定メニューにプラグイン設定ページを追加してみる

アクションフックを使ってプラグイン管理ページへのリンクをWordPress管理画面の設定メニューに追加する方法を下記サイトを参考にして確認しました。

参考サイト
Create a Custom WordPress Plugin From Scratch
 
プラグインの登録方法は下記ページ参照。
簡単なWordPressのプラグインを実際に作ってみる
 

(1)プラグインファイルを作成


 
上記参考サイトのサンプルコードを使って、下記ファイルを作成します。
 
プラグインファイル wp-content/plugins/db_importer/db_importer.php

<?php
/*
Plugin Name: DB Product Display
Plugin URI: ・・・
Description: ・・・
Version: 1.0
Author URI: ・・・
*/
?>

<?php
function dbimp_admin() {
  include('db_import_admin.php');
}

function dbimp_admin_actions() {
  add_options_page("DB Product Display", "DB Product Display", 'manage_options',
 "DB_Product_Display", "dbimp_admin");
}

add_action('admin_menu', 'dbimp_admin_actions');
?>

 

(2)サンプルコードの説明


 
1)設定メニューにサブメニューを登録するには?
 
設定メニューにサブメニューを登録するには”add_options_page”を使用します。
 
●add_options_page( $page_title, $menu_title, $capability, $menu_slug $function )
 
$page_title
サブメニューページのタイトル。
$menu_title
プルダウンに表示されるメニュー名。
$capability
サブメニューの権限(レベル数または権限名)。
$menu_slug
サブメニューのスラッグ。
$function
サブメニューページのコールバック関数。
 
ここでは、下記のように定義します。

function dbimp_admin_actions() {
  add_options_page("DB Product Display", "DB Product Display", 'manage_options', "DB_Product_Display", "dbimp_admin");
}

※’manage_options’
“設定の管理”の権限を持つユーザーに表示するようにする。
   
メニューをクリックした際に表示されるプラグイン設定ページは、別途”dbimp_admin”関数で定義します。
 
2)add_options_page関数(設定メニューにサブメニューを追加)のコールバック関数を定義
 
実際のプラグイン設定ページの内容は、’db_import_admin.php’に記述し、ここではインクルードするのみです。

function dbimp_admin() {
  include('db_import_admin.php');
}

 
※’db_import_admin.php’は、各プラグイン固有の処理なのでここでは特に触れません。上記参考サイトのサンプルコードをコピーして動作確認します。
 
3)アクションフックを定義
 
サブメニューを登録する”add_options_page”を適切なタイミングで実行するためにアクションフックを定義します。
 
使用するアクションフックは”admin_menu”フックです。”admin_menu”フックは、管理画面メニューの基本構造が配置された後に実行されるフックです。
1)で定義した関数をアクションフックに関連付けます。
 
add_action(‘admin_menu’, ‘dbimp_admin_actions’);
 
●動作確認
 
プラグインを有効にし、管理画面の設定メニューに”DB Product Display”という項目が追加されていることを確認します。
 
メニューをクリックするとプラグインの設定画面が表示される事を確認します。

関連記事の目次

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください