wp プラグインの作成5 DBとの連携

2013/05/01

wordpressでのプラグインの作成5。

管理画面で入力した内容をDBに書き込みして、テンプレートに出力。
ただ、管理画面では登録済みのデータを表示ってのは未実装。

<?php
/**
* @package testDio
* @version 1.0
*/
/*
Plugin Name: はろー・ワールド4
Plugin URI: http://tips.recatnap.info/
Description: 「はろー・ワールド3」をベースにDBと連携
Author: DIお
Version: 1.0
Author URI: http://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;
}

?>

▼テンプレートに記載する内容

<?php viewDioWorld4(); ?>

雑記 – 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」っぽい。

新着(ニュース関連以外)

2017-08-03
formのinputでmaxlengthを使うとFirefoxでバグってた。他のブラウザでも気づかずにバグってたかもしれない。
2017-07-19
折れ線グラフをもう少しゆるやかに・・・というか何というか・・・調べていくと「移動平均」っていう言葉にたどり着いた
2017-07-10
FuelPHPの1.8をダウンロードして使っていたらセッションが使えないということに気付いた。
2017-06-27
MACにWin10をインストールしてみた:再挑戦。
2017-06-25
「簡単」っていうヤツらが多いけど・・・難しいぞ。