LucyとRuby

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件

    post no. 665

    Comments