SEが教えるEC運営のブログ ウェブ運用と開発現場を経験したSEのTIPS
TOP > BLOG > IT記事

WordPressで記事一覧とアイキャッチ画像をmysqlから取得する

早川朋孝 早川朋孝
EC専門のSE

レコメンドエンジンをワードプレスに実装するにあたり、今まで投稿した記事の一覧を用意する必要があるのだけれど、単純なデータ取得が調べると意外と面倒で、結局SQLで解決しました。これはその備忘録として書いておきます。

投稿した記事と画像はwp_postsに保存されている

ワードプレスのmysqlにログインすると色々なtableがあるが、wp_postsというtableが投稿した記事のデータだろうことは簡単に分かる。しかしこのtableには投稿記事以外にも固定ページの情報や画像情報まで登録されている。私の場合は100記事程度しか投稿していないのにcountすると673もあったのはそういう理由だ。したがって以下のように絞る。

>select id,post_title, post_date,post_name, post_status, guid, post_type from wp_posts where post_status = ‘publish’ and post_type = ‘post’ limit 30;

この通りである必要はまったくないが、公開ステータスは「publish」、post_typeは「post」にするのがポイントで、とりあえず30件くらいに絞っておく。投稿数が多い人は制限をかけないととんでもないことになります。

wp_postmetaにアイキャッチ画像の情報が登録されている

次にwp_postmetaというtableについても把握しておく必要がある。投稿記事のアイキャッチ画像として保存した内容はこのtableに保存されているからだ。wp_postmetaのmeta_keyが「_thumbnail_id」であればそれはアイキャッチ画像として設定されているという意味だ。そしてpost_idが記事の投稿IDである。以下がその例です。

+———+———+—————+————+
| meta_id | post_id | meta_key | meta_value |
+———+———+—————+————+
| 127 | 52 | _thumbnail_id | 110 |
| 154 | 118 | _thumbnail_id | 120 |
| 181 | 112 | _thumbnail_id | 129 |
>select post_id, meta_key, meta_value from wp_postmeta where meta_key = ‘_thumbnail_id’

このおおまかな仕様さえ分かってしまえば、エンジニアであればあとはいかようにもなりましょう。自分の目的はPHPだけ見ていても解決しそうになかったので、てっとりはやくSQLで調べたらあっさり解決しました。

×

メルマガ登録

SEが商品登録、在庫管理、発注などのEC業務を効率よくプログラムで実施する方法を無料配信します。

  • APIやツールによる業務効率化
  • 広告運用に関するTips
  • CVRを改善するアクセス解析のコツ
このブログを書いてる人
早川 朋孝 EC専門のSE
IT業界歴20年のエンジニアです。ネットショップ勤務で苦労した経験から、EC・ネットショップ事業者に向けて、バックオフィス業務の自動化・効率化を提案するSEをしています。
Web運用の経験もあり、アクセス解析、広告運用が得意で、広告APIとプログラムとの合わせ技で並の広告代理店にはできない提案が可能です。
プロフィール
API連携の相談にのります
趣味は読書、ピアノ、マリノスの応援など
PAGE TOP