Advanced Custom Fieldsでチェックボックスの記事を取得
2024/02/20
Advanced Custom Fieldsでチェックボックス設定しているカスタムフィールドがあり、チェックされている値ごとに記事を取得したかった。以前対応したような形でいけるかと思いきやそうでもなかったので対応方法をメモ。
設定内容
チェックボックスの中身は以下を想定し、フィールド名は「テストチェックボックス」とする。
- 1 : 赤
- 2 : 青
- 3 : 緑
MySQLの保存内容
以下のようなシリアライズされた形で保存されていた。
a:2:{i:0;s:1:"2";i:1;s:1:"3";}
取得方法
前提としてチェックボックスの値はGETクエリにてtest=値の形で指定するものとする。以下のような形で取得。
<?php $paged = (int) get_query_var('paged'); $args = array( 'posts_per_page' => 10, 'paged' => $paged, 'orderby' => 'post_date', 'order' => 'DESC', 'post_type' => 'post', 'post_status' => 'publish', 'post__not_in' => array( get_the_ID() ), ); if( $_GET['genre'] ){ $args['meta_query'] = array( array( 'compare'=>'LIKE', //LIKE検索指定 'key' => 'テストチェックボックス', 'value' => '1:"' . $_GET['test'] . '"' ), ); } $the_query = new WP_Query($args); ?>
LIKE検索でシリアライズされている内容から無理やり抽出する形になる。今回は値を数値で入れていたので助かったが、文字列の場合は検索ができない場合も出てきそう。
まとめ
Advanced Custom Fieldsでチェックボックスの記事を取得する場合はLIKE検索で抽出する。値部分は文字列で設定しておいた方が良い。
関連記事
-
Advanced Custom Fieldsでセレクトメニューを動的に生成する方法
WordPressでカスタムフィールド設定用のプラグインAdvanced Cus ...
-
WordPressで記事毎に設定したバナー広告を表示させる方法
WordPressでGoogleアドセンスのようなクリック広告ではなく、商品を指 ...
-
WordPressでカスタムフィールドとCSVファイル投稿する方法
WordPressでカスタムフィールド設定している環境に、CSVファイルアップロ ...
-
Advanced Custom FieldsでGoogleMapの使用する方法
Advanced Custom FieldsでGoogleMapを使用したかった ...
-
Advanced Custom Fieldsで設定した項目を条件に記事一覧を取得する方法
WordPressでAdvanced Custom Fieldsにて設定した項目 ...