WPの独自プラグインを作ってみる2

2025.01.17 09:00
2025.01.14 11:15
WPの独自プラグインを作ってみる2

前回は独自プラグインの枠組みのみを作成しました。
今回はメニューを作成していきます。

1. メニューを作成

管理画面左にこのプラグインのメニューを表示するために、hoge.phpに追記していきます。

<?php
/*
Plugin Name: Hoge Plugin
Description: Hogeプラグイン
Version: 1.0.0
*/

/**
 * メニューを表示する関数
 * 
 */
function hoge_plugin_menu() {
  add_menu_page(
    'テストプラグイン', // 管理画面のメニュータイトル
    'テストプラグイン', // 管理画面のメニューページのタイトル
    'manage_options', // 必要な権限
    'hoge_plugin', // メニュースラッグ(一意)
    'hoge_page' // メニューをクリックした際にページを表示する関数
  );
}

/**
 * メニューをクリックした際にページを表示する関数
 * 
 */
function hoge_page() {
  echo 'メニューページの内容を表示する関数(ここにHTMLやCSSを書き込んでいきます。)';
}


/**
 * 管理画面表示時に追加メニューを呼び出す関数
 * 
 */
add_action('admin_menu', 'hoge_plugin_menu');

こんな感じで管理画面の左メニューに項目を追加することと、
追加項目をクリックした際のページに何を表示するかを指定していきます。
画面的にはこんな感じになります。

メニューを増やす場合はこんな感じ。

<?php
/*
Plugin Name: Hoge Plugin
Description: Hogeプラグイン
Version: 1.0.0
*/

/**
 * メニューを表示する関数
 * 
 */
function hoge_plugin_menu() {
  add_menu_page(
    'テストプラグイン', // 管理画面のメニュータイトル
    'テストプラグイン', // 管理画面のメニューページのタイトル
    'manage_options', // 必要な権限
    'hoge_plugin', // メニュースラッグ(一意)
    'hoge_page' // メニューをクリックした際にページを表示する関数
  );
  add_submenu_page(
    'hoge_plugin' , // 親メニューのスラッグ(一意)
    'テストプラグイン_ページ1' , // 管理画面のメニュータイトル
    'テストプラグイン_ページ1' , // 管理画面のメニューページのタイトル
    'manage_options' , // 必要な権限
    'hoge_plugin_1' , // このサブメニューのスラッグ(一意)
    'hoge_plugin_1' , // メニューをクリックした際にページを表示する関数
  );
  add_submenu_page(
    'hoge_plugin' , // 親メニューのスラッグ(一意)
    'テストプラグイン_ページ2' , // 管理画面のメニュータイトル
    'テストプラグイン_ページ2' , // 管理画面のメニューページのタイトル
    'manage_options' , // 必要な権限
    'hoge_plugin_2' , // このサブメニューのスラッグ(一意)
    'hoge_plugin_2' , // メニューをクリックした際にページを表示する関数
  );
}

/**
 * メニューをクリックした際にページを表示する関数
 * 
 */
function hoge_page() {
  echo 'メニューページの内容を表示する関数(ここにHTMLやCSSを書き込んでいきます。)';
}

function hoge_plugin_1() {
  echo 'テストプラグイン_ページ1を表示する関数';
}

function hoge_plugin_2() {
  echo 'テストプラグイン_ページ2を表示する関数';
}


/**
 * 管理画面表示時に追加メニューを呼び出す関数
 * 
 */
add_action('admin_menu', 'hoge_plugin_menu');

add_submenu_pageを増やすとメニューが増えます。
あとはそれに対応したページを関数で指定してあげます。ここだと「hoge_plugin_1()」や「hoge_plugin_2()」などですね。
画面的にはこんな感じになります。

メニューはこんな感じです。
次に作ったメニューの一覧インデックスページを作ります。
hoge_page()関数を以下のように変更します。

/**
 * メニューをクリックした際にページを表示する関数
 * 
 */
function hoge_page() {
  echo 'メニューページの内容を表示する関数(ここにHTMLやCSSを書き込んでいきます。)';

  echo '<ul>' . "\n";
  echo '  <li><a href="' . admin_url(). 'admin.php?page=hoge_plugin_1">テストプラグイン_ページ1</a></li>' . "\n";
  echo '  <li><a href="' . admin_url(). 'admin.php?page=hoge_plugin_2">テストプラグイン_ページ2</a></li>' . "\n";
  echo '</ul>' . "\n";
}

各ページへのリンクを追加しました。
リンク先は「adminページURL/admin.php?page=スラッグ名」とします。
画面はこんな感じです。

これでページの枠組みは完成ですね。
今回は以上です!