前置き
sqlでwordpressの投稿データを取得する内容を記載していきます。
wp_postsの構造は=>wp_postsの構造{wordpress日本語版}
投稿記事をselect文で全データを取得
投稿内容を取得するにはデータベースのwp_postsテーブルのpost_contentを指定することになります。sqlでデータを取得したい時はselect文を使います。
$sql = "SELECT * FROM wp_posts";
上記のコードはwp_postsテーブルから*(全部の列)のデータをselect(取得)します。
欲しい列を指定したい場合*の所に列名を記述します。
投稿記事のタイトルを取得したい場合
$sql = "SELECT post_title FROM wp_posts";
✽を欲しい列名に変えてsqlを発行します。
$sql = "SELECT fromの後に指定したテーブルの中の列名 FROM テーブル名";
違うテーブルの列名を指定してもデータは取得できません。
2列を取得したい場合
$sql = "SELECT post_title,post_content FROM wp_posts";
となり、カンマで区切って指定します。
データベースに接続する
データベースからデータを取得するには、まずデータベースに接続しなくてはいけません。
接続するためにはデータベースのユーザー名とパスワードとデータベースのホスト、接続したいデータベースの名前を使い接続します。wordpressをインストールした際に入力したと思います。
$db_user = $wpdb->dbuser; //ユーザー このまま記述する $db_passwd = $wpdb->dbpassword; //パスワード このまま記述する $db_host = $wpdb->dbhost; //データベースホスト このまま記述する $db_name = "db_name"; //使用するデータベース名 wp-config.phpに記載 $connect = new wpdb($db_user, $db_passwd, $db_name, $db_host); //接続 このまま記述する
ユーザー名、パスワード、データベースホスト名は上記のコードのままコピー&ペーストで問題ありません。データベース名はwordpressをインストールした際に入力したと思います。データベース名がわからない時はwordpress/wp-config.phpに記載してあります。
もちろんphpMyadminを開けばデータベース名が載っていますが・・・
変数connect($connect)の行もコーピー&ペーストで大丈夫です。
これでデータベースへの接続は完了です。
sqlを使ってデータを取得する
いよいよsqlでデータベースに問い合わせます。
$sql = "SELECT * FROM wp_posts"; //用途に合わせて変更する $results = $connect->get_results($wpdb->prepare($sql ,null)); //このまま記述する
上記のsqlでwp_postsの全データを取得できます。(✽のため全データを取得する)
下記を使うとデータが見やすいです。
function print_pre($array){ echo "<pre>"; print_r($array); echo "</pre>"; } print_pre($results);
公開済みの投稿記事のみの全データを取得する
2018/02/23 追記
純粋に公開済みの投稿記事のみの全データを取得したい場合は下記を参照
$sql = "SELECT * FROM wp_posts WHERE post_status = 'publish' AND post_type = 'post' ";
2年くらい前に私は下記の本で勉強しました。(初版)
|
|