最近、DB(MySQL)から取得したデータを表示していたサイトをWordPressに変更しました。その際、既存DBのデータをWordPressに表示させることができたので情報共有します。 DB接続情報とファイル格納先のパスを書き換えるだけで使用できるように記載しました。
目次
環境
レンタルサーバ | Xserver |
DB | MySQL |
手順
概要
WordPressの子テーマに、DBからデータを取得し、HTML出力するPHPファイルを新規作成します。次にPHPファイルを呼び出すショートコードを登録します。これで、記事からショートコードを指定するだけでDBから取得したデータを表示することができるようになります。
手順
custom-page.phpの新規作成
DBからデータ取得しHTML出力するPHPファイル(custom-page.php) を新規作成します。これはテンプレートで、記事内にショートコードを記載して表示させます。表示する画面レイアウトはこのファイルに作り込んでください。(サンプルはテーブル出力する単純なものです)
custom-page.phpに下記コードをコピペしてください。その際、オレンジマーカーの箇所は読み替えてください。 下記サンプルは、tradeテーブルのデータ件数を取得し、画面出力するテンプレートのコードです。
<?php
/*
Template Name: My Custom Page
*/
// 新しいデータベース接続の設定
$newdb = new wpdb('dbname', 'pwd', 'userid', 'localhost');
$results = $newdb->get_results("SELECT count(*) as count FROM trade");
if (!empty($results)) {
// データ出力HTML
echo '<table>';
echo '<tr><th>件数</th></tr>'; // テーブルのヘッダー
foreach ($results as $row) {
echo '<tr>';
echo '<td>' . $row->count . '</td>'; // データの表示
echo '</tr>';
}
echo '</table>';
}
functions.phpの編集
functions.phpの最後尾に下記コードを追加します。 オレンジマーカーは新規作成したPHPファイル名です。myphpはショートコードで、記事から呼び出すと、テンプレートが表示されます。
touch( get_stylesheet_directory() . 'custom-page php' ); //ショートコードを使ったphpファイルの呼び出し方法 function my_php_Include($params = array()) { extract(shortcode_atts(array('file' => 'default'), $params)); ob_start(); include(STYLESHEETPATH . "/custom-page.php"); return ob_get_clean(); } //ショートコードmyphpを設定 add_shortcode('myphp', 'my_php_Include');
記事作成
ショートコードを選択
ショートコードにmyphpを指定
画面出力結果
テーブル件数を出力しています。
最後に
HTMLでテーブルを作成し、そこにDBから取得したデータ(今回はテーブルのデータ件数)を表示するサンプルをご紹介しました。SQLとHTMLを編集してご利用ください。
コメント