作成日:2017-11-22, 更新日:2020-12-01
やりたいこと
このサイトがそうなんだけど、WordpressとFuelPHPの両方を使っている。
※以前はWordpressとMediaWikiを使ってた。
で、FuelPHPからWordpressで作成した記事を取得したい。
プラグインやRSSを利用するなど方法はいくつかある。
調べたときの気になるキーワードたち
・WP REST API
・RSSを取得
・wp_load.phpを読み込む
・WP-API(JSON REST API)
・wp-includes内のfeed.phpを読み込む
・wp_remote_post関数
・require('wp-blog-header.php');
・XML-RPC機能
調べるのが面倒だったり、外部から叩けるってのは避けたい・・・ってのがあったりして結局DBから直接データを取得することにした。
基本
Wordpressの「wp-config.php」の「$table_prefix」を確認
※「$table_prefix=wp_」となっているときはテーブル名「wp_」から始まる。
下記は、新着が欲しいから日付でソートしている。
- 公開している記事取得
-
select ID id, post_modified, post_title, post_excerpt, post_content, post_name from wp_posts p where post_status="publish" order by post_modified desc
- 公開している記事で、カテゴリ指定して取得
-
select p.ID, p.post_modified, p.post_title, p.post_excerpt, p.post_content, p.post_name, t.name from wp_posts p left join wp_term_relationships tr on p.ID=tr.object_id left join wp_term_taxonomy tt on tt.term_taxonomy_id=tr.term_taxonomy_id left join wp_terms t on t.term_id=tt.term_id where p.post_status="publish" and t.`name`='〇〇〇' order by p.post_modified desc
記事にカテゴリは複数設定することが可能なので、1回のクエリで取得できるかもしれないけど・・・分からない。
・wp_posts - 記事。記事の状態はpost_status。
・wp_terms - カテゴリ名。スラッグも含まれるかもしれないけど、未調査
・wp_term_〇〇〇 - wp_termsの詳細や記事との紐づけ
関連項目
・Wordpressの関数をWordpress外から呼び出す(wp-load.phpの読込み)
・Wordpressの記事一覧を取得(WP REST API)