Advanced Custom Fieldsでチェックボックスの記事を取得
Advanced Custom Fieldsでチェックボックス設定しているカスタムフィールドがあり、チェックされている値ごとに記事を取得したかった。以前対応したような形でいけるかと思いきやそうでもなかったので対応方法をメモ。
設定内容
チェックボックスの中身は以下を想定し、フィールド名は「テストチェックボックス」とする。
- 1 : 赤
- 2 : 青
- 3 : 緑
MySQLの保存内容
以下のようなシリアライズされた形で保存されていた。
1 |
a:2:{i:0;s:1:"2";i:1;s:1:"3";} |
取得方法
前提としてチェックボックスの値はGETクエリにてtest=値の形で指定するものとする。以下のような形で取得。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?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 Custom Fieldsにて設定した項目 ...
-
-
WordPressを4.8.2にして不具合
WordPressを4.8.2にすると記事の新規追加時にウィジウィグの挙動がおか ...
-
-
Polylangで言語毎の分岐処理
WordPressで多言語サイトを作成するにあたりPolylangというプラグイ ...
-
-
WordPressのメール送信フォームに画像認証を設置する
■やりたかった事 ココで作成したメール送信フォームに画像認証を設置する ■方法 ...
-
-
WordPressを外部サーバから投稿する方法
WordPressをダッシュボードからではなく、外部サーバのプログラムから投稿し ...
-
-
PHP5.1系にWordPressを入れる方法
無料レンタルサーバーにWordPressを突っ込むと、 「 サーバーの PHP ...
-
-
WordPressでユーザー毎にフラグを持たせる
WordPressでユーザー毎に何らかのフラグを持たせて、フラグによって分岐処理 ...
-
-
ACFでセレクトメニューを動的に生成
WordPressでカスタムフィールド設定用のプラグインAdvanced Cus ...
-
-
WordPress記事本文の文字検索と置換方法
WordPressの記事本文内にhogeという文字列が含まれていた場合、hoge ...
-
-
WordPressで自作テーマにウィジェット対応
WordPressで自作したテーマでウィジェットを登録しようとしたところダッシュ ...