WordPressで簡単なプラグインの作成 : WordPress
WordPressでプラグインを作る覚書。
参考資料
» プラグインの作成 - WordPress Codex 日本語版
»プラグイン API - WordPress Codex 日本語版
»プラグイン API/アクションフック一覧 - WordPress Codex 日本語版
»プラグイン API/フィルターフック一覧 - WordPress Codex 日本語版
»Adding Administration Menus - WordPress Codex 日本語版
»Creating Options Pages - WordPress Codex 日本語版
» Function Reference/delete option « WordPress Codex
機能
プラグイン設定画面で入力した値を管理画面のフッターに表示する。
ソースコード
プラグインファイルを配置する場所
wordpress/wp-content/plugins/■■■/■■■.php
<?php
/*
Plugin Name: ■■■
Version: 1.0
Plugin URI: http://www.exsample.com
Description: プラグインの設定画面に入力された値を管理画面のフッターに表示。
Author: Example
Author URI: http://www.exsample.com
*/
//--------------------------------------------------------------------------
//
// 管理画面>設定>プラグイン設定画面を追加
//
//--------------------------------------------------------------------------
// 管理メニューに追加するフック
add_action('admin_menu', '○○○');
// フックに対するaction関数
function ○○○()
{
// 設定メニュー下にサブメニューを追加:
add_options_page('●●●', '□□□', 8, 'file', '▲▲▲');
}
// プラグイン設定画面のコンテンツ表示のコンテンツを表示する。
function ▲▲▲()
{
// 設定変更画面を表示する
?>
<div class="wrap">
<h2>Exsample</h2>
<form method="post" action="options.php">
<?php wp_nonce_field('update-options'); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">キー1</th>
<td><input type="text" name="key1" value="<?php echo get_option('key1'); ?>" /> px</td>
</tr>
<tr valign="top">
<th scope="row">キー2</th>
<td><input type="text" name="key2" value="<?php echo get_option('key2'); ?>" /> px</td>
</tr>
</table>
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="key1,key2" />
<p class="submit">
<input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
</p>
</form>
</div>
<?php
}
//--------------------------------------------------------------------------
//
// プラグイン停止の際に追加したフィールドを削除
//
//--------------------------------------------------------------------------
add_action('deactivate_■■■/■■■.php', '×××');
function ×××()
{
delete_option('key1');
delete_option('key2');
}
//--------------------------------------------------------------------------
//
// フッターへの表示
//
//--------------------------------------------------------------------------
add_action('admin_footer', '◆◆◆');
function ◆◆◆()
{
$key1_value = get_option('key1');
$key2_value = get_option('key2');
if($key_value && $key2_value)
{
echo "<p>$key1_value : $key2_value</p>";
}
}
?>
覚書
/*
Plugin Name: ■■■
Version: 1.0
Plugin URI: http://www.exsample.com
Description: プラグインの設定画面に入力された値を管理画面のフッターに表示。
Author: FindxFine
Author URI: http://www.findxfine.com
*/
プラグインに必須の記述。
//--------------------------------------------------------------------------
//
// 管理画面>設定>プラグイン設定画面を追加
//
//--------------------------------------------------------------------------
// 管理メニューに追加するフック
add_action('admin_menu', '○○○');
// 上のフックに対するaction関数
function ○○○()
{
// 設定メニュー下にサブメニューを追加:
add_options_page('●●●', '●●●', 8, 'file', '▲▲▲');
}
// プラグイン設定画面のコンテンツ表示のコンテンツを表示する。
function ▲▲▲()
{
// 設定変更画面を表示する
?>
<div class="wrap">
<h2>●●●</h2>
<form method="post" action="options.php"> -----※1
<?php wp_nonce_field('update-options'); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">キー1</th>
<td><input type="text" name="key1" value="<?php echo get_option('key1'); ?>" /> px</td>
</tr>
<tr valign="top">
<th scope="row">キー2</th>
<td><input type="text" name="key2" value="<?php echo get_option('key2'); ?>" /> px</td>
</tr>
</table>
<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="key1,key2" />
<p class="submit">
<input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
</p>
</form>
</div>
<?php
}
»Adding Administration Menus - WordPress Codex 日本語版
»Creating Options Pages - WordPress Codex 日本語版
※1:option.phpはプラグインディレクトリ■■■に配置していないが、うまく動作している(何故か分からない)。
※2:データベースのoptionsテーブルへのデータの追加はプラグイン設定画面の「変更を保存]をクリックした際に行われる。
//--------------------------------------------------------------------------
//
// プラグイン停止の際に追加したフィールドを削除
//
//--------------------------------------------------------------------------
add_action('deactivate_■■■/■■■.php', 'remove_resize_edit_content');
function remove_resize_edit_content()
{
delete_option('key1');
delete_option('key2');
}
» Function Reference/delete option « WordPress Codex
プラグインを停止した際にoptionsテーブルのkey1,key2の行を削除。
//--------------------------------------------------------------------------
//
// フッターへの表示
//
//--------------------------------------------------------------------------
add_action('admin_footer', '◆◆◆');
function ◆◆◆()
{
$key1_value = get_option('key1');
$key2_value = get_option('key2');
if($key_value && $key2_value)
{
echo "<p>$key1_value : $key2_value</p>";
}
}
関連記事 : 投稿画面のタイトル入力域の幅とビジュアルリッチエディタ入力域の幅を変更するWordPressプラグイン : WordPress,プラグイン
Trackbacks
-
[...] WordPressで簡単なプラグインの作成 : WordPress | findxfine -Web制作に関する覚書- [...]
コメント
コメントの投稿
改行と段落タグは自動で挿入されます。メールアドレスは表示されません。
利用可能な HTML タグ :
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite="">
<cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>