画像検索

メディアライブラリの画像を検索する際、完全一致だけでなく、部分一致曖昧検索なども可能です。WP_Queryを使うことで、柔軟に検索条件を変更できます。

1. 完全一致の検索

これは画像タイトルやタグなどに対して完全一致で検索する場合です。

$args = array(
    'post_type' => 'attachment',
    'post_mime_type' => 'image',
    'posts_per_page' => -1,
    's' => '検索キーワード'  // 完全一致でタイトルや説明に一致するものを検索
);
$query = new WP_Query($args);

この's'引数は、画像のタイトル説明post_titlepost_excerpt)に基づいて検索されます。

2. 部分一致の検索

WP_Querys引数は部分一致にも対応しています。例えば、検索キーワードが「cat」だとしたら、タイトルや説明に「cat」が含まれている画像をすべて取得できます。

$args = array(
    'post_type' => 'attachment',
    'post_mime_type' => 'image',
    'posts_per_page' => -1,
    's' => 'cat'  // 部分一致検索
);
$query = new WP_Query($args);

このように、完全一致だけでなく、部分一致でも検索可能です。

3. カスタムフィールドやタグで検索

画像にカスタムフィールドタグが設定されている場合、meta_querytax_queryを使って検索を絞り込むことができます。

例:タグで部分一致検索

$args = array(<br>    'post_type' => 'attachment',<br>    'post_mime_type' => 'image',<br>    'posts_per_page' => -1,<br>    'tax_query' => array(<br>        array(<br>            'taxonomy' => 'post_tag',<br>            'field'    => 'name',<br>            'terms'    => 'cat', // タグに「cat」を含む画像を検索<br>            'operator' => 'LIKE', // 部分一致<br>        ),<br>    ),<br>);<br>$query = new WP_Query($args);

例:カスタムフィールドで部分一致検索

$args = array(
    'post_type' => 'attachment',
    'post_mime_type' => 'image',
    'posts_per_page' => -1,
    'meta_query' => array(
        array(
            'key'     => 'custom_field_key',  // カスタムフィールド名
            'value'   => 'cat',  // カスタムフィールドの値(部分一致)
            'compare' => 'LIKE',  // 部分一致
        ),
    ),
);
$query = new WP_Query($args);

4. 他の検索条件の追加

さらに、画像のアップロード日カテゴリーを条件に加えて絞り込むこともできます。例えば、特定の期間にアップロードされた画像を検索する場合は、date_queryを使用できます。

$args = array(
    'post_type' => 'attachment',
    'post_mime_type' => 'image',
    'posts_per_page' => -1,
    'date_query' => array(
        array(
            'after' => '2025-01-01', // 2025年1月1日以降の画像
        ),
    ),
);
$query = new WP_Query($args);

部分一致検索は十分に可能ですし、さらにカスタムフィールドやタグを使った検索を加えることで、非常に柔軟な検索機能を実装できます。WP_Queryの柔軟性を活かして、必要に応じて条件を追加・調整できますので、特定のニーズに合わせた検索機能を実装できます。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です