J'ai un type de message personnalisé appelé Emplacement avec un champ personnalisé appelé Ville. J'ai aussi des taxonomies sur ce type de message appelé Specialties. Le filtre de spécialité fonctionne parfaitement avec le tax_query
, mais je ne parviens pas à filtrer le champ personnalisé.
Cela ne fonctionne pas, et ce n'est pas à peu près tout ce que j'ai essayé:
$args = array('post_type' => 'location',
'tax_query' => array(
array(
'taxonomy' => 'specialties',
'field' => 'slug',
'terms' => $specialty,
)),
'meta_query' => array(array('city' => $location,'compare' => '=',))
);
Votre valeur 'meta_query'
est fausse - elle devrait être:
'meta_query' => array(
array(
'key' => 'city',
'value' => $location,
'compare' => '=',
)
);
Quoi qu'il en soit, vous n'avez pas besoin d'utiliser 'meta_query'
dans ce cas où vous devez filtrer uniquement le champ one / meta ... Donc, pour un code un peu plus optimisé, essayez de remplacer votre $args
par le suivant:
$args = array(
'post_type' => 'location',
'tax_query' => array(
array(
'taxonomy' => 'specialties',
'field' => 'slug',
'terms' => $specialty,
)
),
'meta_key' => 'city',
'meta_value'=> $location,
);