タグ: PHP

  • CSV出力

    php出力処理、他にも使えそうなので、サンプルとして残す

    /**
     * 文字列の配列の配列をCSV出力する
     *
     * この関数は、文字列の配列を複数持つ配列(2次元配列)を受け取り、
     * それをCSV形式で出力します。
     *
     * @param string $filename ファイル名
     * @param array $records 文字列を要素とする配列の配列
     */
    function csv_download($filename, $records) {
        // 出力情報の設定
        header("Content-Type: application/octet-stream");
        header("Content-Disposition: attachment; filename={$filename}");
        header("Content-Transfer-Encoding: binary");
    
        // 出力バッファを開始
        ob_start();
        // もし他の部分で余計なデータが出力されていた場合にクリアする
        ob_clean(); // ここで出力バッファをクリアする場合
    
        // ベースとなるデータを作成
        $buffer = "";
        foreach($records as $record) {
            $buffer.= '"' . implode('","', $record) . '"'. "\r\n";
        }
    
        $buffer = mb_convert_encoding($buffer, "SJIS-win", "auto");
    
        echo $buffer;
        // 出力バッファの内容を終了して送信
        ob_end_flush();
        exit;
    
    }
    
  • 画像検索

    メディアライブラリの画像を検索する際、完全一致だけでなく、部分一致曖昧検索なども可能です。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の柔軟性を活かして、必要に応じて条件を追加・調整できますので、特定のニーズに合わせた検索機能を実装できます。