40
11

【WordPress】プラグインで入力したデータを取得する方法

Last updated at Posted at 2024-07-07

時間のない人のために結論先出し。

結論:$wpdbを使えば、SQLでWordPressに保存したデータを操作できる。


業務でBooking Packageというプラグインを使って入力した内容を取得する必要が出てきたので、キャッチアップした内容を備忘録としてまとめておきます。

Booking Packageの管理画面は以下のようになっています。サービスというところに入力した情報を取得します。ここでは「ホンダ」と「CB1100」という名前を取得します。

スクリーンショット 2024-07-07 20.12.30.png

① まず、DBのテーブルを見にいきます。DBの情報がわからないとデータを取得できないからです。Localの場合で説明します。

Localの画面でDatabaseのタブに切り替え、Open AdminierEvoをクリックします。

スクリーンショット 2024-07-04 11.10.36.png

すると、DBの管理画面らしきものが開きます。ここではwp-booking_package_servicesというテーブルの中に、取得したい情報が入っていました。

スクリーンショット 2024-07-04 11.11.25.png

② 次に、functions.phpにwpdbを使った関数を書きます。

functions.php
function get_service_names()
{
  global $wpdb;
  $query = "SELECT name FROM wp_booking_package_services";
  $results = $wpdb->get_results($query);
  return $results;
}

③ 最後に、呼びたいページのphpで、先ほど作った関数を呼べば完了です。

front-page.php
<?php
$services = get_service_names();
if (!empty($services)) : ?>
  <ul>
    <?php foreach ($services as $service) : ?>
      <li><?= esc_html($service->name) ?></li>
    <?php endforeach; ?>
  </ul>
<?php else : ?>
  <p>No active services found.</p>
<?php endif; ?>

スクリーンショット 2024-07-04 11.55.15.png

サービスAという余計な情報も取得してしまいましたが、その辺りはSQLで調整すればOKです。(Booking Packageの別のカレンダーのサービスの情報が紛れてしまったようです。)


この記事では、WordPressのBooking Packageというプラグインで入力した内容をwpdbで取得する方法を説明しました。他のプラグインでも大体同じ仕組みだと思うので、ぜひwpdbを活用してみてください。

wpdbを使用する際には、SQLインジェクション攻撃を防ぐために、prepare() メソッドを使うべきかどうかを考えて使用しましょう。

40
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
11