wpdb_get_var()


WordPressのwpdb_get_var()関数は、データベースから単一の値を取得するために使用されます。この関数は、カスタムクエリや条件付きのデータベース操作を簡潔に行いたい場合に便利です。

構文

$wpdb->get_var( string $query, int $x = 0, int $y = 0 );

引数の説明:

  • $query (string) — 実行するSQLクエリ。
  • $x (int) — 返される行のインデックス (デフォルトは0)。
  • $y (int) — 返される列のインデックス (デフォルトは0)。

例1: 投稿タイトルの取得

次のコードは、特定の投稿のタイトルをデータベースから取得します。

<?php global $wpdb; $post_title = $wpdb->get_var( "SELECT post_title FROM $wpdb->posts WHERE ID = " . get_the_ID() ); echo $post_title; ?>

例2: 総投稿数の取得

このコードは、すべての公開された投稿の合計数を返します。

<?php global $wpdb; $post_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'" ); echo $post_count; ?>

例3: 特定のカテゴリの投稿数を取得

次のコードは、特定のカテゴリ内の投稿数を取得します。

<?php global $wpdb; $category_id = get_cat_ID( 'ニュース' ); $count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->term_relationships WHERE term_taxonomy_id = %d", $category_id ) ); echo $count; ?>

例4: ユーザーの役割の確認

以下のコードは、特定のユーザーが「管理者」かどうかを確認します。

<?php global $wpdb; $user_id = get_current_user_id(); $is_admin = $wpdb->get_var( $wpdb->prepare( "SELECT meta_value FROM $wpdb->usermeta WHERE user_id = %d AND meta_key = %s", $user_id, $wpdb->prefix . 'capabilities' ) ); echo ( strpos( $is_admin, 'administrator' ) !== false ) ? '管理者です' : '管理者ではありません'; ?>

例5: カスタムフィールド値の取得

特定の投稿に関連付けられたカスタムフィールド値を取得します。

<?php global $wpdb; $meta_value = $wpdb->get_var( $wpdb->prepare( "SELECT meta_value FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = %s", get_the_ID(), 'custom_field_name' ) ); echo $meta_value; ?>

注意事項

  • $query引数にユーザー入力を直接渡さないでください。常に$wpdb->prepare()を使用してSQLインジェクションを防ぐ必要があります。
  • クエリの結果がnullの場合、wpdb_get_var()はnullを返します。

関連機能: