先日、WordPressプラグインで管理画面の設定ページを作成するという記事を公開しました。今回は同じような感じでCodexの説明を参考にしつつ、PHPのクラス構文を用いて設定ページを作成します。その1ではプラグインの完成画面の紹介とファイルの概観などにしぼって説明します。
完成画面の紹介
クラス構文による管理画面の設定ページが完成するとこんな感じになります。例えば画像の通り設定ページのID Numberを”9999″、Titleを”Hello World!”と入力して「変更して保存」ボタンを押します。
するとWordPressを使用しているデータベースのwp_optionsテーブルに、それぞれの文字列が保存されていることが分かります。
プラグインの全体像
記述するコードを一つずつ説明すると途中で分かりにくくなるので、プラグインの全体像を先に説明します。
ファイルの構成
今回作成するプラグインは主に2つのファイルが登場します。
MySettingsPage.php
MySettingsPageクラスが記述され、その中に管理画面の設定ページを構成するために必要なプロパティやメソッドを定義しています。
MySettingsPage_admin.php
MySettingsPageクラスのインスタンスが記述されています。MySettingsPage.phpで定義した内容が、MySettingsPage_admin.phpで実行されます。
各ファイルの大まかな内容
各ファイルについてPHPの文法と組み込み関数を使って表すと、ざっくりとこんな感じになります。
MySettingsPage.php
[php]
<?php
/*
Plugin Name: MySettingsPage
Plugin URI: https://example.com
…
*/
class MySettingsPage {
(プロパティの定義)
(メソッドの定義)
}
require(__DIR__ . ‘/MySettingsPage_admin.php’);
[/php]
MySettingsPage.phpはWordPressがプラグインを認識するためのファイルです。管理画面の設定ページ内で必要な機能をMySettingsPageクラス内でプロパティやメソッドで定義し、最後にMySettingsPage_admin.phpに引き継ぎます。
MySettingsPage_admin.php
[php]
<?php
$my_settings_page = new MySettingsPage();
[/php]
MySettingsPage.phpで定義した内容をインスタンスして、$my_settings_pageで表示します。
[php]
<?php
if( is_admin() ){
$my_settings_page = new MySettingsPage();
}
[/php]
ただしインスタンスの実行は管理画面が表示されたときに限定したいので、WordPress関数のis_adminを使用して条件分岐させます。
なお今回紹介したコードはGitHubにて公開していますが、require関数の第二引数が間違っています。こちらのGitHubのコードも合わせて参考にしてください。その2に続きます。