WordPress(DB)よりデータの取得方法を確認するためのサンプルプログラムを作ってみた
DB操作はWordPressで用意されてる便利なグローバル変数$wpdbを使用する
これを使えばDBアクセスが簡単
プログラムはwp_postsテーブルより更新日時降順に公開済み情報を取得すると言う物
(細かい仕様はプログラム中のコメント参考のこと)
テーブル名の接頭辞を”wp_”以外に変更しててもそれを意識する必要は無い、WordPress内でうまくやってくれる(笑
プログラムを実行すると”記事ID”、”タイトル”、”記事URL”、”種別”、”作成日時”、”更新日時”の一覧が表示される
試す方は、適当なファイル名(hoge.phpなど)でUTF8保存すること!
プログラム2行目の”wp-load.php”は実行する環境に合わせてパスを変更する
wp-load.phpはWordPressインストールした直下にある
プログラム実行結果
実行結果はこんな感じとなる
内容はいい加減なテスト内容なので気にせずに・・・
サンプルプログラム
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
<?php require_once("./wp-load.php"); // 環境に応じてパスを変更する //---------------------------------------- // 変数定義 //---------------------------------------- global $wpdb; // wordpressで用意されてるグローバル変数 $arPostType = array( 'post'=>'投稿', 'page'=>'固定ページ', 'attachment'=>'添付ファイル', 'revision'=>'リビジョン', 'nav_menu_item'=>'ナビゲーションメニュー'); //---------------------------------------- // DBより必要な情報を取得 //---------------------------------------- $data = $wpdb->get_results( " SELECT id, post_title, post_type, post_date, post_modified FROM $wpdb->posts WHERE post_status = 'publish' /* 公開済みステータス */ ORDER BY post_modified DESC /* 更新日時降順に並べる */ LIMIT 10 /* 最大取得数 */ " ); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>最新更新一覧</title> </head> <body> <h1>取得結果</h1> <table border="1" style="border: 1px solid black; border-collapse: collapse;"> <tr> <th>記事ID</th> <th>タイトル</th> <th>記事URL</th> <th>種別</th> <th>作成日時</th> <th>更新日時</th> </tr> <?php foreach ($data as $value) { echo "<tr>\n"; echo "<td>" . $value->id . "</td>\n"; echo "<td>" . $value->post_title . "</td>\n"; echo "<td>" . get_permalink($value->id) . "</td>\n"; echo "<td>" . $arPostType[$value->post_type] . "</td>\n"; echo "<td>" . $value->post_date . "</td>\n"; echo "<td>" . $value->post_modified . "</td>\n"; echo "</tr>\n"; } ?> </table> </body> </html> |
最後に
このサンプルプログラムで動作確認できたので、ウィジェットの書き方を調べてそれように加工しようかなと考え中
もしかして似たようなウィジェットが公開されてるかもしれないけど、それは無視して自作にこだわる♪
コメント