サポート » その他 » 特定のカテゴリに紐づく投稿をSQLで取得したい

  • 解決済 DAISUKE_DESU

    (@watanabe02desu)


    初めまして。
    表題の通り、あるカテゴリに紐づく投稿の一覧を取得したいのですが、
    「phpやwpのfunctionを使えない」という要件があり、
    いろいろ調べたんですが解決に至らず新年を迎えてしまったので、相談させてください。

    phpが使えれば、関数使って一発で取って来れると思うのですが、
    phpではなく外部のミドルウェアが、直接wpのDBを参照して、
    特定のカテゴリに紐づく投稿の一覧をSQLレベルで取得したい、というのが要件になります。

    DBの中身をみたところ、以下のテーブルが有ることが確認できました。

    1. wp_term
    2. wp_term_taxonomy
    3. wp_term_relationships
    4. wp_postmeta
    5. wp_posts

    そこで各テーブルの中身を確認したところ、
    “1. wp_term”の中に、目的のカテゴリである”NEWS”を発見できました。
    そこから、”5. wp_posts”までリレーションしていって、カテゴリ”NEWS”に紐づく投稿をガバッと取得したいのですが、いまいちテーブル間のリレーションが分かりません。泣

    なんとなく見た感じで作ったSQLが以下の通りですが、
    果たしてこれが合っているのかどうかも分からず、もしテーブル間のリレーションにお詳しい方がいれば、ご助言いただけるとすごい助かります。

    —————ココカラ—————
    SELECT * FROM wp_posts WHERE ID IN (
    SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id IN (
    SELECT term_taxonomy_id FROM wp_term_taxonomy WHERE term_id IN (
    SELECT term_id FROM wp_terms WHERE name = ‘NEWS’
    )
    )
    )
    —————ココマデ—————

    または、テーブル間のリレーションに関する資料が有れば、確認してみますので、
    教えていただけると助かります。

    よろしくお願いします。

    • このトピックは DAISUKE_DESUが3 ヶ月、 2 週間前に変更しました。
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    SQL に問題ないように見えますが・・・。
    下記ページにデータベース構造の説明があります。
    データベース関連図 (ER図) もあります。
    http://wpdocs.osdn.jp/データベース構造

    • この返信は3 ヶ月、 2 週間前に  ishitaka さんが編集しました。

    @ishitaka さん

    ご助言助かります!
    頂いたURLで、
    wp_term_relationships の object_id が、”記事ID or リンクID”であることを確認できました!
    まさにこの情報が知りたかったんです!!
    ※「object_idって、何者やねん。。。」って思ってたので

    想定していたSQLで問題なく取得出来そうですね!
    感謝します、ありがとうございました!

    本件はこれにてclose致しますね。

    • この返信は3 ヶ月、 2 週間前に  DAISUKE_DESU さんが編集しました。
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。