web-dev-qa-db-ja.com

自分の投稿の下にタグクラウドのみを表示するタグクラウドを表示するにはどうすればよいですか。

投稿に関連するタグのみを表示するタグクラウドを投稿の下に追加しようと思っています。表示されるタグはタグクラウド形式になっているはずです。より多くの投稿がタグ付けされている投稿タグは、より大きなフォントで表示されます。

私の投稿の下に次のコードを追加してみました。

<?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

    ) ); ?>

Postタグを参照するためにpost idを呼び出すためにinclude配列を使用しようとしました。しかし、うまくいきません。投稿に固有のタグではなく、存在するすべてのタグが表示されます。

誰もが解決策を持っていますか。助けてください。

6
Logen

最初に、 wp_get_post_tags を呼び出して、割り当てられたtag id:sをすべて取得する必要があります。これは wp_tag_cloudのincludeパラメーター はタグIDでのみ機能します、ページIDではありません。したがって、すべてのid:sがある場合、次のようにwp_tag_cloud内のincludeパラメーターにそれらを配置します。

<?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
        ) );
    }
?>

また、 defaults とは異なる祖先を持たないパラメーターをいくつか削除しました。配列を変更する必要がある場合にのみカスタムパラメーターを追加する必要があります。

7