wp プラグインの作成6 項目を2つへ。

2013/05/01

wordpressでのプラグインの作成6。
前回は項目をひとつだけ。今回は複数。

オブジェクトにして渡せば勝手にやってくれるっぽいし、受取りの方もオブジェクトで返ってくるっぽい。

<?php
/**
 * @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;
  }
  
}

?>

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

<?php viewDioWorld5("dio"); ?>

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

2018-07-26
年賀状で「新春」とか書くけど・・・何故なんだろうと8月を目前にした今、疑問に思った。
2018-05-16
PHPで画像のヘッダ情報(?)の「Orientation」を元に画像回転させたい。
2018-03-05
Android Studioをインストール。エミュレータを軽くするトコまで終わらせたかったけど、挫折した。
2018-02-23
プッシュ通知について調べてた時にでてきたServiceWorker。そのServiceWorkerについてのメモ。
2017-12-13
jqueryで取得したDOM要素をオブジェクトじゃなくて、配列で受け取りたい