Wordpressの記事の中で独自のmysqlテーブルを操作する
WordPressの記事の中で、mysqlのテーブル操作(検索、更新など)を行うには、どうしたら良いでしょうか?
基本的にWordpressの各テーブルは、Wordpressで用意されているAPI(Wordpressでは、タグと呼ばれているphp関数群)でほとんどの情報を操作することができます。
しかし、独自で作成したmysqlのテーブルはどうでしょう。
それを操作するためのタグ(API)も用意されていますので、今回は、それについて取り上げてみます。
準備
Wordpressで、独自のテーブルを記事の中で操作するには、記事の中でphpが動作するようなプラグインをインストールする必要があります。
以下の記事を参考にプラグインをインストールしましょう。
phpを記事の中で動作させるためのプラグイン記事;WordPressの記事の中でPHPを動作させる
また、その動作確認のためのmysqlのテーブルも用意しておきましょう。
ここでは、mysqlのテーブルは、テスト用として以下のようなものを用意しました。
※以下の例では、SSHなどでサーバーにログインできる場合の例です。
SSHでのログインができないような環境では、phpAdminが使えると思いますので、そこでログインし、SQLを実行すれば同じことができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | > mysql -uxxx -pyyy -Dzzz Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.1.36-community MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> CREATE TABLE `test_run_post` ( -> `strkey` varchar(32) , -> `numkey` int , -> PRIMARY KEY (`strkey`) ); Query OK, 0 rows affected (0.11 sec) mysql> |
| 1 行目 : |
-uxxx : ログインユーザ名を指定します。xxx がユーザ名になります。 -pyyy : ログインユーザのパスワードを指定します。yyy がパスワードになります。 -Dzzz : 利用するデータベース名を指定します。zzz がデータベース名になります。 注意 |
| 8 行目 : |
実際にテーブルを作成しています。sql文です。
CREATE TABLE `test_run_post` ( `strkey` varchar(32) , `numkey` int , PRIMARY KEY (`strkey`) ); 簡単なテーブルです。 2つの情報だけです。 |
WordPressの記事の中でテーブルを操作してみましょう
Wordpressの記事の中でテーブルを操作するには、先のプラグインを有効にして、記事の中で実際にphpコードを記述します。
以下は、テスト用テーブルのレコード削除、レコード追加、レコード参照を行った例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <?php global $wpdb; $html = ''; // delete all table values. $sql = 'DELETE FROM `test_run_post`'; $query_result = $wpdb->query($sql); if($query_result!==false){ // OK // insert table values. for($ni=1;$ni<10;$ni++){ $sql = "INSERT INTO `test_run_post`(`strkey`,`numkey`) values('testkey".$ni."',".$ni.")"; $query_result = $wpdb->query($sql); if($query_result===false){ $html .= "*** table insert error\n$sql"; break; } } if(empty($html)){ // no-error // print table values. $html .= '<table><tr><td><b>strkey</b></td><td><b>numkey</b></td></tr>'; $sql = 'SELECT * FROM `test_run_post`'; $results = $wpdb->get_results($sql , ARRAY_A); foreach($results as $row){ $html .= '<tr><td>'.$row['strkey'].'</td><td>'.$row['numkey'].'</td></tr>'; } $html .= '</table>'; } } else { $html .= "*** table delete error\n"; } // print out results. echo $html; ?> |
| 1 行目 : |
WordPressでmysqlを扱うときのデータベースオブジェクトになります。 Global宣言することで、ここで使えるようになります。 |
| 5-6 行目 : | 一旦、テスト用テーブルの値を全削除します。 |
| 10-17 行目 : | テスト用テーブルにテスト用の値を9レコード分を追加します。 |
| 19-29 行目 : | テスト用テーブルの全データをHTML形式で出力します。 |
これを実際に動作させると以下のようになります。
| strkey | numkey |
| testkey1 | 1 |
| testkey2 | 2 |
| testkey3 | 3 |
| testkey4 | 4 |
| testkey5 | 5 |
| testkey6 | 6 |
| testkey7 | 7 |
| testkey8 | 8 |
| testkey9 | 9 |
ここでは、記事の中で実行する例を記載していますが、テーマテンプレートの中でも、同様にして動作させることができます。
これを駆使すれば、Wordpressと独自のデータを結合させて、情報の更新を簡単にできるようになります。
この記事を読んだ人は、こんな記事も読んでいます。:
Trackback URL
このコメントは管理人から承認された後、表示されます。
コメント
2 Responses to “WordPressの記事の中で独自のmysqlテーブルを操作する”
コメントをどうぞ


2011年07月19日 @ %H:%M
Good one.This is veryhelpful for the wordpress beginners.Thanks for such a interesting tutorial.
2011年08月04日 @ %H:%M
This is Admin.
Thanks.