Advanced Custom Fieldsでチェックボックスの記事を取得
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検索で抽出する。値部分は文字列で設定しておいた方が良い。
関連記事
-
-
WordPressで固定ページに記事一覧を表示させるプラグイン
WordPressで固定ページ編集時にショートコードを書くことで、記事一覧を表示 ...
-
-
WordPressを4.8.2にして不具合
WordPressを4.8.2にすると記事の新規追加時にウィジウィグの挙動がおか ...
-
-
WordPressのユーザー画像とプロフィール
WordPressでユーザー毎に画像とプロフィール部分にHTMLタグを登録したか ...
-
-
WordPressのfunctions.phpの初期設定
WordPressのテーマ作成時にfunctions.phpを書くが、いつも内容 ...
-
-
WordPressのカテゴリーベースに関して
WordPressのパーマリンク設定でカテゴリベースを設定したかった。ここは変更 ...
-
-
WordPressで記事毎に設定した広告を表示させる方法
WordPressでGoogleアドセンスのようなクリック広告ではなく、商品を指 ...
-
-
WordPressで逆アクセスランキングの設置
WordPressに逆アクセスランキングを設置したかった。 ただ、広告が出ないタ ...
-
-
WordPressで記事検索時に投稿ID順にならない場合
WordPressでサイト上から記事検索を行った場合、通常であれば投稿IDが新し ...
-
-
WordPressでカスタムフィールドとCSVファイル投稿
WordPressでカスタムフィールド設定している環境に、CSVファイルアップロ ...
-
-
WordPressで閲覧者にテーマを変更させるプラグイン
「新規サイトを○○みたいなイメージでWordPressのテーマを見繕って欲しい」 ...