| ブログトップ | CMS関連 |

カスタムフィールドの値が空だと、meta_queryの条件に引っかからない【WordPress】

この記事は1年以上前の記事のため、内容が古い可能性があります。

バージョンによるバグらしいけど、一応メモ。

「カスタムフィールドテンプレート」で

[test_field]
type=checkbox
value=true

のようなフィールドを追加し、次にテンプレートのquery_postsで

$query = array(
		array(
			'key' => 'test_field',
			'value' => 'true',
			'compare' => '!=',
			'type' => 'CHAR'
		)
	)
);

こんな感じの条件文(つまりtest_filedにチェックが入ってない場合)を書いたところ、一向にヒットしませんでした。
もちろん、チェックが入っていない記事は存在します。

逆に

$query = array(
		array(
			'key' => 'test_field',
			'value' => 'true',
			'compare' => '=',
			'type' => 'CHAR'
		)
	)
);

だと、チェックが入っている記事がちゃんと表示されました。

どうもvalueが空状態だと条件にヒットしなくなるバグが3.1のころにあったみたいです。
それは3.2で正常に戻ったそうなんですが、自分が使っているのは3.4.2・・・
バグ復活といったところでしょうか。

解決方法につきましては、以下のサイトで紹介されておりました。

WordPress3.1系:meta_queryでvalueが空の時の対処法 | ライ麦畑でつかまえられて、思わず出たオナラが案外フローラルだった感動を貴方にも。

他にもラジオボタンやプルダウンにして、絶対に値が入るようにするなどの方法を取るという手もあります。(自分はソースを変えるのが面倒だったので、この方法で回避しました。)

日々の生活にhappyをプラスする|ハピタス

このエントリーをはてなブックマークに追加

LINEで送る

nandani | 2012年12月18日 | コメント(0) | トラックバック(0) | CMS関連

トラックバック

トラックバックURL

コメントする

※メールアドレスが公開されることはありません。

名前 *
メール*
URL
Copyright(c) 2010 - 2024 ダリの雑記