WordPressで独自テーブルのデータを抽出して表示する方法
WordPressで自作の独自テーブルのデータを表示する方法を説明します。
初心者でもできると思います。
自作テーブルのデータを表示する手順
独自テーブルを作成
まずは表示させるデータが入ったテーブルを作成します。
phpMyAdminにログインし、現在使用しているWordPressのデータベースの中にテーブルを新規作成します。テーブル名は自由ですが、wp_などの接頭辞は他のテーブルと同じにしてください。(図ではwp_mytestというテーブルを作成しました。2カラムだけのシンプルなテーブルです。)
※phpMyAdminのテーブル作成の操作説明は省略します。
独自テーブルにデータを入力
ステップ1で作成したテーブルにデータを入力します。phpMyAdminでテーブルを開き、「挿入」からデータを入力していきます。
ここではphpMyAdminでデータを入力する操作説明は省略します。
WordPressの設定ファイルに独自テーブル名を追記
独自テーブルをWordPressに認識させるため、WordPressのデータベース設定ファイルに独自テーブルの名前を追記します。
データベース設定ファイルはサーバーの\wordpress\wp-includes\class-wpdb.phpの階層にあります。WordPressのテーマフォルダよりも少し上の階層です。
データベース設定ファイルを開き、ファイル内のpublic $tables = array(と書かれた箇所を検索します。そこにWordPressが参照するテーブル名がずらっと並んでいるので、独自テーブル名(接頭辞は除く)を追記して上書き保存します。
このステップまでで、独自テーブルそのものの準備は完了です。続いて、テーブルのデータを読み込んでサイトに表示させるためのphpの処理を作ります。
独自テーブルを表示する関数を作成
WordPressのfunctions.phpに、独自テーブルのデータを呼び出して表示する関数を作成します。
下記は独自テーブルのname列を抽出して件数とデータを表示する関数の例です。関数名は仮にecho_mytest_table()としています。
また、投稿記事から簡単に呼び出せるように最後の一行でmytest_tableという名前のショートコードを登録しています。
<?php
function echo_mytest_table(){
ob_start();//ショートコード使用時に投稿の一番上に表示されるのを防止
global $wpdb;//wpdbクラスを使用するためグローバル変数$wpdbを宣言
// $wpdb->hide_errors(); //エラー発生時にエラーメッセージを隠す場合はここを有効にする
$sql = "SELECT serial, name FROM $wpdb->mytest ORDER BY serial ASC"; //データ抽出のsqlを作成
$rows = $wpdb->get_results($sql); //sqlを実行
$count = $wpdb->num_rows; //抽出件数を取得
//HTML書き出し
echo '<p>データ件数:' . $count . '件</p>';
echo '<ul>';
foreach($rows as $row){
echo'<li>' . $row->serial . ' ' . $row->name . '</li>'; //1件ずつループ処理で書き出す
}
echo '</ul>';
return ob_get_clean();//ショートコード使用時に投稿の一番上に表示されるのを防止
}
add_shortcode('mytest_table', 'echo_mytest_table');
関数(ショートコード)を呼び出す
ステップ4で作成した、独自テーブルを表示する関数を呼び出します。ショートコードを登録してあるので、投稿内で[mytest_table]と記述するだけで呼び出せます。
[ mytest_table ]
以上のステップで、独自テーブルのデータをサイトに表示する手順は完了です。
独自テーブルの読み込みの例
上で説明した手順で実際に独自テーブルのデータを読み込んでみます。下記はショートコード[mytest_table]の実行結果です。
データ件数:0件



