web-dev-qa-db-fra.com

Comment puis-je afficher un nuage de tags sous mon message qui ne montre que les tags de ce message?

Je cherche à ajouter un nuage de tags sous mon message qui ne montre que les tags relatifs à ce message. Les tags affichés doivent être dans un format de nuage de tags; les étiquettes de publication qui ont plus de publication avec elle seront affichées dans une police plus grande.

J'ai essayé d'ajouter le code suivant sous mes messages:

<?php wp_tag_cloud( array(

        'smallest' => 8,          // font size for the least used tag
        'largest'  => 22,         // font size for the most used tag
        'unit'     => 'px',       // font sizing choice (pt, em, px, etc)
        'number'   => 45,         // maximum number of tags to show
        'format'   => 'flat',     // flat, list, or array. flat = spaces between; list = in li tags; array = does not echo results, returns array
        'orderby'  => 'name',     // name = alphabetical by name; count = by popularity
        'order'    => 'ASC',      // starting from A, or starting from highest count
        'include'  => $post_id,         // ID's of tags to include, displays none except these
        'link'     => 'view',     // view = links to tag view; edit = link to edit tag
        'taxonomy' => 'post_tag', // post_tag, link_category, category - create tag clouds of any of these things
        'echo'     => true        // set to false to return an array, not echo it

    ) ); ?>

J'essayais d'utiliser le tableau d'inclusion pour appeler l'identifiant de publication afin de prendre la référence de la balise de publication. Mais ça ne marche pas. Il affiche toutes les balises existantes au lieu des balises spécifiques à la publication.

Quelqu'un a-t-il une solution. S'il vous plaît aider.

6
Logen

Vous devez d’abord obtenir tous les identificateurs de balise: sattribués en appelant wp_get_post_tags car le paramètre include dans wp_tag_cloud fonctionne uniquement avec les identificateurs de balise, pas l’identificateur de page . Donc, quand vous avez tous les identifiants: s, mettez-les dans le paramètre include du wp_tag_cloud comme ceci:

<?php
    // Get the assigned tag_id
    $tag_ids = wp_get_post_tags( $post->ID, array( 'fields' => 'ids' ) );

    // Check if there is any tag_ids, if print wp_tag_cloud
    if ( $tag_ids ) {

        wp_tag_cloud( array(
            'unit'     => 'px',       // font sizing choice (pt, em, px, etc)
            'include'  => $tag_ids,   // ID's of tags to include, displays none except these
        ) );
    }
?>

J'ai également supprimé certains paramètres qui ne font pas d'ascendance différente de celle de par défaut , il vous suffit d'ajouter des paramètres personnalisés si vous devez modifier le tableau.

7
Pontus Abrahamsson