web-dev-qa-db-ja.com

カスタムフィールド値による投稿のフィルタリングが機能しない

Cityというカスタムフィールドを持つLocationというカスタム投稿タイプがあります。私はSpecialtiesと呼ばれるそのポストタイプの分類法もあります。特殊フィルタはtax_queryでうまく動作しますが、カスタムフィールドでフィルタすることができません。

これは動作していません、そしてまた私が試みてきた他のすべてについてだけでもありません:

$args = array('post_type' => 'location',
    'tax_query' => array(
          array(
          'taxonomy' => 'specialties',
          'field'    => 'slug',
          'terms'    => $specialty,
        )),
    'meta_query' => array(array('city' => $location,'compare' => '=',))
    );
3
Von

'meta_query'の値が間違っています-次のようになります。

'meta_query' => array(
    array(
        'key'     => 'city',
        'value'   => $location,
        'compare' => '=',
    )
);

とにかく、oneメタフィールドでフィルタリングする必要があるこの場合、'meta_query'を使用する必要はありません...コード、$argsを次のものに置き換えてみてください。

$args = array(
    'post_type' => 'location',
    'tax_query' => array(
        array(
            'taxonomy' => 'specialties',
            'field'    => 'slug',
            'terms'    => $specialty,
        )
    ),
    'meta_key'  => 'city',
    'meta_value'=> $location,
);
1
ClemC