web-dev-qa-db-fra.com

Comment obtenir toutes les balises d'un type de message personnalisé par identifiant

question simple, comment obtenir toutes les balises d'un type de message personnalisé par id? post_type = produit.

j'ai essayé avec http://codex.wordpress.org/Function_Reference/wp_get_post_tags dans ma boucle de publication et le print_r ne me renvoyant rien.

c'est pourquoi j'ai essayé ça,

$term_list = wp_get_post_terms($post->ID, 'product_tag', array("fields" => "all"));
print_r($term_list);

et ça me fait des tags dans mon print_r($term_list); Merci

1
sohan

Approche en boucle: généralement archive- {fichier_personnalisé} .php.

PREMIER:

custom_post_plural Correspond à un groupe de publications personnalisées d'un certain type.

Exemple de custom_post_plural: products

custom_post_singular Indique un type de publication personnalisé.

Exemple de custom_post_singular: product

SECONDE:

var $ args_custom_post_plural sont les paramètres du WP_Query.

var $ custom_post_plural est l'exécution de la requête.

J'ai utilisé var $ custom_post_plural_output pour itérer le contenu du WP_Object, en particulier avec le posts terme, ce qui en fait un "tableau convivial".

Comme vous pouvez le voir, j’ai partiellement utilisé les instructions d’Ahmad pour une itération imbriquée.

$args_custom_post_plural=array(
   'post_type' => 'custom_post_singular',
   'post_status' => 'publish', 
   'posts_per_page' => -1, 
   'fields' => 'ids', 
   'order_by' =>'id', 
   'order' => 'ASC'
);
$custom_post_plural = new WP_Query($args_custom_post_plural);
$custom_post_plural_output = $custom_post_plural->posts;
for ($i=0; $i < count($custom_post_plural_output); $i++) { 
   $tags = wp_get_post_tags($custom_post_plural_output[$i]);
   $buffer_tags ='';
   foreach ( $tags as $tag ) {
      $buffer_tags .= $tag->name . ',';
   }
}
echo $buffer_tags;

ENFIN:

FYI Si vous souhaitez utiliser cela dans un fichier .php unique {custom_post}, vous pouvez utiliser le code suivant:

$tags = wp_get_post_tags($post->ID);
foreach ( $tags as $tag ) {
   $buffer_tags .= $tag->name . ',';
}
echo $buffer_tags;

Puisque vous devez avoir un article lié pour pouvoir afficher quoi que ce soit.

Bonne codage.

PS @cjbj Pourquoi diable as-tu effacé mon montage, il y a quelque chose qui ne va pas ou quoi? Gestion affreuse ici, et très malveillante car je ne peux pas répondre à un commentaire à cause de mon nombre de points de réputation.

1
luis

wp_get_post_tags fonctionne uniquement pour les publications, pas pour les autres types de publication. Si vous regardez /wp-includes/post.php, vous verrez qu'il appelle la fonction wp_get_post_terms avec $ taxonomy défini sur ' post_tag ':

function wp_get_post_tags( $post_id = 0, $args = array() ) {
    return wp_get_post_terms( $post_id, 'post_tag', $args );
}

Pour les balises de produit ou une autre taxonomie, vous pouvez utiliser get_the_terms () à la place:

$tags = get_the_terms( $prod_id, 'product_tag' );
$tags_names = array();
if ( ! empty( $tags ) ) {
    foreach ( $tags as $tag ) {
        $tags_names[] = $tag->name;
    }
}
0
David Najman