サポート » プラグイン » Contact Form DBのデータベースを直接取得したい

  • 解決済 JunichiK

    (@junichik)


    いつもお世話になります。
    他の人の過去のトピックと重複する部分もあるのですが、未解決のままでしたので、改めてご指導を賜りたいと思います。

    会員制サイトで、Contact Form 7を使用して送信した履歴を、ユーザーが見れるようしたいので、Contact Form DBをインストールしました。
    Contact Form DBのショートコードのfilterでyour-idを指定すると、ユーザーIDごとのデータは取得できるのですが、複数ユーザーの場合に変数で指定して取得することが出来ません。

    それで、データベースを直接取得して何とかならないかと思ったのですが、例えば、下記のようにコードを書いても何も取得出来ません。

    <?php
    $data = $wpdb->get_results( "SELECT field_name FROM $wpdb->wp_cf7dbplugin_submits" );
    foreach ($data as $value) {
    echo $value->field_name . "<br />";
    }
    ?>

    この書き方で、例えばwp_postsテーブルのデータは普通に取得できるのですが、プラグインのデータベースの場合は取得出来ないのでしょうか?
    また、他に何か方法があるのでしょうか?

    何卒、ご指導のほどよろしくお願い致します。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    WordPressのデフォルトのテーブルは、$wpdb->posts や $wpdb->postmeta などに接頭辞付きのテーブル名が予め格納されています。

    プラグインのテーブル名は、WordPrss本体では管理していませんので、別途、自ら作成する必要があります。といっても、接頭辞部分は、$wpdb->prefix で取得できるので、この接頭辞とプラグイン固有のテーブル名である cf7dbplugin_submits をつなぎ合わせるだけで大丈夫です。

    質問にあったSQL では、

    "SELECT field_name FROM {$wpdb->prefix}cf7dbplugin_submits"

    となります。
    ※ $wpdb->prefix を ブレース({})で括ってあるのは、変数の切れ目を明確にする必要があるためです。

    トピック投稿者 JunichiK

    (@junichik)

    jim912さん、お世話になります。

    大変分かりやすくご教示いただき、お陰様でスッキリいたしました。
    これで次のステップに進めそうですが、目指していることを完成させるには、まだまだ分からないことがございます。
    また新たにトピックを立てさせていただきますので、その際にはご指導いただければ幸いです。
    この度はどうもありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「Contact Form DBのデータベースを直接取得したい」には新たに返信することはできません。