web-dev-qa-db-ja.com

ポストタグとカスタム分類法の両方を使用してタグクラウドを表示する方法

wp_tag_cloud()を使用して、通常の投稿タグとカスタム分類法の両方を組み込んだ単一のタグクラウドを表示する方法を教えてください。

2
Amanda

以下はwp_tag_cloud()関数を少し修正したものです。

function custom_wp_tag_cloud( $args = '' ) {
    $defaults = array(
        'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
        'format' => 'flat', 'separator' => "\n", 'orderby' => 'name', 'order' => 'ASC',
        'exclude' => '', 'include' => '', 'link' => 'view', 'taxonomy' => 'post_tag', 'echo' => true
    );
    $args = wp_parse_args( $args, $defaults );

    $tags = get_terms( $args['taxonomy'], array_merge( $args, array( 'orderby' => 'count', 'order' => 'DESC' ) ) ); // Always query top tags

    if ( empty( $tags ) )
        return;

    foreach ( $tags as $key => $tag ) {
        if ( 'edit' == $args['link'] )
            $link = get_edit_tag_link( $tag->term_id, $tag->taxonomy );
        else
            $link = get_term_link( intval($tag->term_id), $tag->taxonomy );
        if ( is_wp_error( $link ) )
            return false;

        $tags[ $key ]->link = $link;
        $tags[ $key ]->id = $tag->term_id;
    }

    $return = wp_generate_tag_cloud( $tags, $args ); // Here's where those top tags get sorted according to $args

    $return = apply_filters( 'wp_tag_cloud', $return, $args );

    if ( 'array' == $args['format'] || empty($args['echo']) )
        return $return;

    echo $return;
}

taxonomy引数を使用してください。

$args = array(
   'taxonomy' => array( 'post_tag', 'custom_taxonomy' )
);
custom_wp_tag_cloud( $args );
5
sorich87