web-dev-qa-db-fra.com

Obtenir des messages via taxonomie Nom du nom avec espace

J'essaie de récupérer tout le courrier associé à mon terme de taxonomie personnalisé. Ma taxonomie personnalisée est "Magasins". J'utilise le code suivant.

$posts = get_posts(array(
                  'post_type' => 'coupon',
                  'numberposts' => -1,
                  'post_status' => array('publish', 'unreliable', 'draft'),
                  'tax_query' => array(
                    array(
                      'taxonomy' => 'stores',
                      'field' => 'name',
                      'terms' => 'New Store', 
                      'include_children' => false
                    )
                  )
                ));

Mon nom de taxonomie est "Nouveau magasin". Juste parce qu'il y a un espace dans le titre, je ne peux pas avoir de message associé. J'ai essayé le même code sur un terme de taxonomie sans espace dans le titre et cela a fonctionné.

Toute aide serait appréciée. Merci.

1
Sid

Peu importe, je viens d'extraire le terme taxonomie id de nom et ensuite d'extarcter les publications personnalisées à partir de celui-ci. Voici le code si quelqu'un cherche:

$term = get_term_by('name', 'New Store', 'stores');

            $posts = get_posts(array(
              'post_type' => 'coupon',
              'numberposts' => -1,
              'post_status' => array('publish', 'unreliable'),
              'tax_query' => array(
                array(
                  'taxonomy' => 'stores',
                  'field' => 'id',
                  'terms' => $term->term_id, 
                  'include_children' => false
                )
              )
            ));
1
Sid

Vous pouvez obtenir les messages par slug au lieu de nom. Comme ça:

$posts = get_posts(array(
    'post_type' => 'coupon',
    'numberposts' => -1,
    'post_status' => array('publish', 'unreliable', 'draft'),
    'tax_query' => array(
        array(
            'taxonomy' => 'stores',
            'field'    => 'slug',
            'terms'    => array( 'new-store' ),
            'include_children' => false
        )
    )
));

Ou vous pouvez obtenir les messages par terme id. comme ça:

$posts = get_posts(array(
    'post_type' => 'coupon',
    'numberposts' => -1,
    'post_status' => array('publish', 'unreliable', 'draft'),
    'tax_query' => array(
        array(
            'taxonomy' => 'stores',
            'field' => 'term_id',
            'terms' => array( 4 ),
            'include_children' => false
        )
    )
));

Ici vous pouvez trouver un guide sur la façon de connaître le terme id: https://facetwp.com/how-to-find-a-wordpress-terms-id/

1
Wilco