web-dev-qa-db-ja.com

Meta Queryの大文字と小文字を区別する方法は?

次のようなメタクエリがあります。

$posts = new WP_Query( 'post_type=article&meta_key=kln_aid&meta_value=' . $aid );

大文字と小文字を区別するにはaidが必要です。それはMeta Queryを介して可能ですか?

1
Spiro

これがmeta_key/_valuesのしくみです。値の保存方法は大文字と小文字が区別されます。

meta_key = 'foo'およびmeta_value = 'Bar'

探している結果を返します。

$posts = new WP_Query( 'post_type=post&meta_key=foo&meta_value=Bar' );

あなたが探している結果を返さないでしょう:

$posts = new WP_Query( 'post_type=post&meta_key=foo&meta_value=bar' );

ただし、データベースが大文字と小文字を区別しないように設定されており、いくつかの問題を引き起こす可能性があります。

データベースの照合で大文字と小文字が区別されない場合(_ci付き)、update_post_metaとdelete_post_metaおよびget_postsは、大文字または小文字のキーを使用してメタレコードを更新/削除/クエリします。しかし、get_post_metaはWordPressのキャッシングのために明らかに大文字と小文字を区別します。詳細については、 https://core.trac.wordpress.org/ticket/18210 を参照してください。

参照: update_post_meta 詳細については

1
stoi2m1