web-dev-qa-db-fra.com

Le filtrage des publications par valeur de champ personnalisé ne fonctionne pas

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' => '=',))
    );
3
Von

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,
);
1
ClemC