自主的20%るぅる

各々が自主的に好き勝手書くゆるふわ会社ブログ

WordPressに投稿した記事一覧をSQLで取得するメモ

小ネタ〜

自分用メモを兼ねた小ネタです。

とある理由で、Wordpressに投稿した記事一覧をカテゴリ付きで抽出したくなりました。

「投稿一覧」からひとつひとつコピペしてもいいんですけど、ちと面倒なのもありWordpressのデータベースに直接アクセスしてゴニョゴニョしたいな、と。

その時にどうやったか的なのをアレするのがこのエントリです。

まず最初にDB構造を調べないとね

WordPress、結構いろいろなテーブルがありますよね。

……ってことで、まずはWordpressのデータベース構造を調べますよ_ノ乙(、ン、)_

WordPress Codex日本語版に、そのものズバリがまとめられているので参照します。

後はSQLをゴリゴリ書くだけ〜

データベースについてなんとなく分かった気になったら、あとはそいつらから欲しいデータをゲットするだけですね。

今回欲しいのは、

  • タイトル
  • Permalink1)いわゆる投稿のスラッグなんですが、
    直感に反して「wp_post.post_name」ってカラム名っぽいです
  • 投稿者
  • カテゴリ

の4つ。

テーブル的には、

  • wp_posts2)投稿に関する情報が含まれているテーブル
  • wp_users3)ユーザに関する情報が含まれているテーブル
  • wp_terms4)(厳密には違うけど)カテゴリ名が含まれているテーブル
  • wp_term_relationships5)wp_termとwp_term_taxonomyを紐付けるデータが含まれたテーブル
  • wp_term_taxonomy6)対応するwp_termの情報がナニモノなのかを管理するためのテーブル

を参照すればよさげです。

そこで書いてみたSQLがこちら。例によってGitHubのGistに載せてます。ちなみに、今回は使わないけどそのうち使いそうなデータも一緒に引っ張ってきてます。

……なお、当方SQL苦手系男子なので、「もっと良い方法があるよ!」ってのがあればおしえてくだちゃい(´・ω・`)

wp_postsのpost_statusが「publish」でpost_typeが「post」なやつが、公開済みの投稿らしいです。

データベースに直接アクセスできる環境に限定された話になりますが……。SQL一発で必要な情報がゲットできると嬉しいときも希によくあるかと思うので、アレしておくとよさげですね(`・ω・´)

おまけ

このSQLを作る際に、データベース構造についてゴニョゴニョするために作ったSQLも晒しておきます。大したものではないので、アレですが(;´Д`)

ユーザの情報を取得するSQLはこちら。

カテゴリの一覧を取得するSQLはこちら。

注訳はこちら

注訳はこちら
1 いわゆる投稿のスラッグなんですが、
直感に反して「wp_post.post_name」ってカラム名っぽいです
2 投稿に関する情報が含まれているテーブル
3 ユーザに関する情報が含まれているテーブル
4 (厳密には違うけど)カテゴリ名が含まれているテーブル
5 wp_termとwp_term_taxonomyを紐付けるデータが含まれたテーブル
6 対応するwp_termの情報がナニモノなのかを管理するためのテーブル
Let’s share this article!

{ 関連記事 }

{ この記事を書いた人 }

Yuta Hayakawa

2016年6月入社。2020年12月より取締役に就任しました。

普段は東京本社で管理職のお仕事したり、広報的役割としてテキスト書いたり動画作ったりするのが最近のお仕事。

自称「社内システムチーム統括」として、社内システムチームの面々を見守りつつ毎日を過ごしています。

プライベート面では、音楽やコンピュータ関連、ゴルハム&ジャンハム関係、ゲーム関係が興味あるポイント。

あと、我が子可愛い。

記事一覧