速報

SageMaker SDKの既定バケットに所有者確認漏れ|成果物の改変を防ぐ更新と点検

CATEGORY

【WordPress】投稿に設定されているカスタムフィールドの値をすべて取得する【wpdb】

※本ページのリンクにはプロモーションが含まれています。

【WordPress】投稿に設定されているカスタムフィールドの値をすべて取得する【wpdb】

目次

本記事では、WordPressのwpdbを使って、投稿に設定されている値のすべて取得する方法をご紹介しています。公開済みの投稿を対象とし、カスタムフィールドのキー(meta_key)を指定して取得する方法になります。

WordPressのwpdbで公開済みの投稿に設定されているカスタムフィールドの値をすべて取得したいんだけど、良い方法ないかな?

上記の疑問にお答えします。

では、解説していきます。

スポンサーリンク

実装内容詳細

タイトルと冒頭の説明では何となく伝わらない気が塩田の出、今回実現したいことを簡単にまとめてみます。箇条書きにすると下記の内容となります。

  • 公開済みの全投稿に設定されているカスタムフィールドの値を所得する
  • カスタムフィールドの指定にはキーmeta_keyを使用する

上記の内容を実現するために、本記事では$wpdbを使用します。$wpdbはWordPressのテーブルにある情報をSQL文で取得することができるオブジェクトです。WordPressの関数でも実現できるかもしれませんが、少し思案して上手い方法が思いつかなかったので、素直に$wpdbを使用することにします。

参考URL:https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wpdb_Class

サンプルソース

下記が今回作成したスクリプトです。使い方は簡単で、上から4行目にあるmeta_keysの配列にwp_postmetaテーブルから取得したいmeta_keyを追加するだけです。実行結果は連想配列で受け取るようにしています。SQL文の中にpost_typeを指定する箇所があるので、カスタム投稿の場合は変更してご利用ください。

<?php

//meta_key
$meta_keys = array(
    'meta_key1',
    'meta_key2',
);


//SQL
$query =
"
    SELECT meta_value
    FROM $wpdb->posts, $wpdb->postmeta
    WHERE $wpdb->posts.ID = $wpdb->postmeta.post_id AND
    $wpdb->posts.post_status = 'publish' AND
    $wpdb->posts.post_type = 'post' AND
    $wpdb->postmeta.meta_key = %s
";


//DB問い合わせ
foreach($meta_keys as $meta_key){
    $result[$meta_key] = $wpdb->get_results($wpdb->prepare($query, $meta_key), ARRAY_A);
}

var_dump($result);

上記のサンプルソールで本記事で実現したいことは達成できます。取得した値は$resultに代入されますので、必要な値を抽出するなどしてご利用ください。

スポンサーリンク

最後に

$wpdbはSQL文でWordPressのDBが持っている情報を好きなように取得することができます。SQL文を覚えるための学習コストは必要ですが、今後もWordPressの開発に携わるのであれば覚えておいても良いかもしれません。もし興味がある方は下記の参考書から始められてみてください。

以上、WordPressのwpdbで投稿に設定されているカスタムフィールド値をすべて取得する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク

カスタムフィールド

WordPressで、記事やページに本文とは別の独自の項目(価格、日付、URLなど)を追加して保存する機能。

詳しく見る