wp プラグインの作成5 DBとの連携
wordpressでのプラグインの作成5。
管理画面で入力した内容をDBに書き込みして、テンプレートに出力。
ただ、管理画面では登録済みのデータを表示ってのは未実装。
/**
* @package testDio
* @version 1.0
*/
/*
Plugin Name: はろー・ワールド4
Plugin URI: https://tips.recatnap.info/
Description: 「はろー・ワールド3」をベースにDBと連携
Author: DIお
Version: 1.0
Author URI: https://tips.recatnap.info/
*/
class DioWorld4 {
function __construct() {
add_action('admin_menu', array($this, 'add_pages'));
}
function add_pages() {
add_menu_page('ワールド4', 'はろー設定4', 8, __FILE__, array($this, 'dio_world4_admin_view'));
}
function dio_world4_admin_view() {
$tmpSorce = "";
//$_POST['dioTextOptions'])があったら保存
if ( isset($_POST['dioTextOptions'])) {
$opt = $_POST['dioTextOptions'];
// データベースの「wp_options」テーブルにレコードの追加や更新
update_option('dioTextOptions', $opt);
// データベースに保存した絡みのメッセージ
echo '<div class="updated fade"><p><strong>';
_e('Options saved.'); // 「_e()」の中でechoしてるっぽい。戻り値は無い感じ?
echo '</strong></p></div>' . "\n";
}
// タイトル部のHTML
$tmpTitle = '<div id="icon-options-general" class="icon32"><br /></div><h2>テキスト設定</h2>' . "\n";
// フォーム絡み
wp_nonce_field('shoptions');
$opt = get_option('dioTextOptions');
$show_text = isset($opt) ? $opt: null;
// フォーム絡みのHTML
$tmpForm = "";
$tmpForm .= '<form action="" method="post">' . "\n";
$tmpForm .= '<table class="form-table">' . "\n";
$tmpForm .= '<tr valign="top">' . "\n";
$tmpForm .= '<th scope="row"><label for="inputtext">テキスト</label></th>' . "\n";
$tmpForm .= '<td><input name="dioTextOptions" type="text" id="inputtext" value="' . $show_text . '" class="regular-text" /></td>' . "\n";
$tmpForm .= '</tr>' . "\n";
$tmpForm .= '</table>' . "\n";
$tmpForm .= '<p class="submit"><input type="submit" name="Submit" class="button-primary" value="変更を保存" /></p>' . "\n";
$tmpForm .= '</form>' . "\n";
// 最終的に出力するHTML
$tmpSorce .= '<div class="wrap">' . "\n";
$tmpSorce .= $tmpTitle;
$tmpSorce .= $tmpForm;
$tmpSorce .= '</div>' . "\n";
echo $tmpSorce;
}
}
$tmpDioWorld = new DioWorld4();
function viewDioWorld4(){
// テンプレートから呼び出す用
$opt = get_option('dioTextOptions');
echo isset($opt) ? $opt: null;
}
?>
▼テンプレートに記載する内容
雑記 – update_option()
update_option()ってヤツがDBに書き込みしてくれるヤツ。
基本「テーブル:wp_options」に書き込み。
一つ目の引数が「wp_options.option_name」、二つ目の引数が「wp_options.option_value」っぽい。
一つ目の引数が「wp_options.option_name」に未登録なら新規登録、登録済みなら更新と勝手にしてくれるっぽい。
雑記 – get_option()
get_option()ってヤツがDBから呼び出ししてくれるヤツ。
一つ目の引数が「wp_options.option_name」で、戻り値が「wp_options.option_value」っぽい。