wp プラグインの作成6 項目を2つへ。
wordpressでのプラグインの作成6。
前回は項目をひとつだけ。今回は複数。
オブジェクトにして渡せば勝手にやってくれるっぽいし、受取りの方もオブジェクトで返ってくるっぽい。
/**
* @package testDio
* @version 1.0
*/
/*
Plugin Name: はろー・ワールド5
Plugin URI: https://tips.recatnap.info/
Description: 「はろー・ワールド4」の改良版:複数の項目
Author: DIお
Version: 1.0
Author URI: https://tips.recatnap.info/
*/
class DioWorld5 {
function __construct() {
add_action('admin_menu', array($this, 'add_pages'));
}
function add_pages() {
add_menu_page('ワールド5', 'はろー設定5', 8, __FILE__, array($this, 'dio_world5_admin_view'));
}
function dio_world5_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_textA = isset($opt['dio']) ? $opt['dio']: null;
$show_textB = isset($opt['jojo']) ? $opt['jojo']: 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">テキストA</label></th>' . "\n";
$tmpForm .= '<td><input name="dioTextOptions[dio]" type="text" id="inputtext" value="' . $show_textA . '" class="regular-text" /></td>' . "\n";
$tmpForm .= '</tr>' . "\n";
$tmpForm .= '<tr valign="top">' . "\n";
$tmpForm .= '<th scope="row"><label for="inputtext">テキストB</label></th>' . "\n";
$tmpForm .= '<td><input name="dioTextOptions[jojo]" type="text" id="inputtext" value="' . $show_textB . '" 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 DioWorld5();
function viewDioWorld5($arg){
// テンプレートから呼び出す用
$opt = get_option('dioTextOptions');
if (isset($opt)) {
if ($arg == "dio") {
echo $opt['dio'];
}
else {
echo $opt['jojo'];
}
}
else {
echo null;
}
}
?>
▼テンプレートに記載する内容