リクエストパラメータに独自のフィールドを追加するには?
ホワイトリストの概念がある。$wpオブジェクト
リクエストパラメータを単に保持するだけでなく、内部でHTTPリクエストからのデータ取り出し、プラグインとテーマのロードなど多岐に渡る処理を行っている。
<?php
/*
Plugin Name: テスト・アニマル・プラグイン
Plugin URI: http://amaraimusi.sakura.ne.jp/note_prg/wordpress/
Description: プラグイン開発のHello Worldです。
Version: 1.0
Author: kenji uehara
Author URI: http://amaraimusi.sakura.ne.jp/
License: MIT
*/
add_filter('the_content', function($content){
$content .= '五月雨をあつめて早し最上川';
return $content;
});
add_action('admin_menu', function(){
add_menu_page('大猫', '大猫','publish_posts','test_animal/test_animal.php');
});
add_menu_page('大猫', '大猫','publish_posts','../wp-content/plugins/test_animal/test_page1.php');
add_menu_page関数について
第1引数応用
add_menu_page('大猫', '大猫','publish_posts','example_setting_page',function(){ echo '<p>大猫プラグインの管理画面</p>'; });第4引数はスラッグを指定するとのこと。
<?php
/*
Plugin Name: テスト・アニマル・プラグイン
Plugin URI: http://amaraimusi.sakura.ne.jp/note_prg/wordpress/
Description: プラグイン開発のHello Worldです。
Version: 1.0
Author: kenji uehara
Author URI: http://amaraimusi.sakura.ne.jp/
License: MIT
*/
class TestAnimal {
public function __construct(){
// 管理者メニューへ項目を追加する
add_action('admin_menu', function(){
add_menu_page('動物管理', '動物管理','publish_posts','example_setting_page',function(){
echo '<p>テスト動物プラグインの管理画面</p>';
//include("../wp-content/plugins/test_animal/test_page1.php"); // PHPファイル読み込み
});
});
// テーブル群を生成する
register_activation_hook(__FILE__, array($this, 'createTable'));
}
/**
* テーブルを生成する
*/
public function createTable(){
error_log('動物名テーブル生成テスト');
$cmt_db_version = '1.0';
global $wpdb;
$table_name = $wpdb->prefix . 'test_animal';
$installed_ver = get_option( 'cmt_meta_version' );//現在のDBバージョンを取得する
// テーブル生成用のSQLを作成する。
if( $installed_ver != $cmt_db_version ) {
$sql = "CREATE TABLE " . $table_name . " (
id int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
animal_name varchar(255) NOT NULL COMMENT '動物名',
animal_date date NOT NULL COMMENT '動物日付',
value1 int(11) COMMENT '値1',
note text COMMENT '備考',
ip_addr varchar(40) DEFAULT NULL COMMENT 'IPアドレス',
delete_flg tinyint(1) DEFAULT '0' COMMENT '無効フラグ',
update_user varchar(50) DEFAULT NULL COMMENT '更新ユーザー',
user_agent varchar(255) DEFAULT NULL COMMENT 'ユーザーエージェント',
created datetime DEFAULT NULL COMMENT '生成日時',
modified timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新日時',
UNIQUE KEY id (id)
)
CHARACTER SET 'utf8';";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);// テーブル生成
update_option('cmt_meta_version', $cmt_db_version);//オプションにDBバージョン保存
}
}
}
$testAnimal = new TestAnimal();
dbDelta関数用のSQL文の注意点
$sql = "CREATE TABLE " . $table_name . " (
id int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
animal_name varchar(255) NOT NULL COMMENT '動物名',
animal_date date NOT NULL COMMENT '動物日付',
value1 int(11) COMMENT '値1',
note text COMMENT '備考',
ip_addr varchar(40) DEFAULT NULL COMMENT 'IPアドレス',
delete_flg tinyint(1) DEFAULT '0' COMMENT '無効フラグ',
update_user varchar(50) DEFAULT NULL COMMENT '更新ユーザー',
user_agent varchar(255) DEFAULT NULL COMMENT 'ユーザーエージェント',
created datetime DEFAULT NULL COMMENT '生成日時',
modified timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新日時',
UNIQUE KEY id (id)
)
CHARACTER SET 'utf8';";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);// テーブル生成
global $wpdb;
$result = $wpdb->insert( 'test_animal', array(
'animal_name' => 'クロサイ',
'value1' => 1000,
));
global $wpdb;
$result = $wpdb->update(
'enq_test_animal',
array(
'animal_name' => 'アフリカゾウ',
'value1' => 1001
),
array( 'id' => 2 )// WHERE条件
);
global $wpdb;
$result = $wpdb->delete( 'enq_test_animal', array( 'id' => 3 ) );
削除した場合、返値($result)は1である。