CSSクラスをul
に追加する方法およびwp_tag_cloud
関数を介して生成されたTag Cloudのアンカー要素
wp-tag-cloud
のul
のデフォルトクラスをtag-cloud
にし、アンカータグをbtn btn-xs btn-primary
クラスにします。
<ul class="tag-cloud">
<li><a class="btn btn-xs btn-primary" href="#">Apple</a></li>
<li><a class="btn btn-xs btn-primary" href="#">Barcelona</a></li>
<li><a class="btn btn-xs btn-primary" href="#">iPod</a></li>
</ul>
タグは、私がこの答えを書いている日(4.7.5)の最新のWordPressバージョンのDIV
要素でラップされています、そしてそれらのクラスはtagcloud
ですので、私は質問で次に尋ねられることに移ります。
タグはwp_generate_tag_cloud
フィルタを使って修正できます。 preg_replace
を書くことによってあなたはあなたが望むものにクラスを変えることができます。これが一例です。
add_filter('wp_generate_tag_cloud', 'my_tag_cloud',10,1);
function my_tag_cloud($string){
return preg_replace('/class="tag-link-.+ tag-link-position-.+"/', 'class="btn btn-xs btn-primary"', $string);
}
アンカーはtag-link-X tag-link-position-Y
クラスを持ち、XとYは数値です。
wp_generate_tag_cloud_data
filter(4.3+)を使ってアンカーCSSクラスを修正することもできます。
そのフィルタを使用して、次のアンカーデータを変更できます。
id
url
role
name
title
(4.8では削除)slug
real_count
class
font_size
formatted_count
(4.8に追加)aria_label
(4.8に追加)show_count
(4.8に追加)4.8属性からわかるように、style属性はハードコードされています。
$a[] = sprintf(
'<a href="%1$s"%2$s class="%3$s" style="font-size: %4$s;"%5$s>%6$s%7$s</a>',
esc_url( $tag_data['url'] ),
$tag_data['role'],
esc_attr( $class ),
esc_attr( str_replace( ',', '.', $tag_data['font_size'] ) . $args['unit'] ),
$tag_data['aria_label'],
esc_html( $tag_data['name'] ),
$tag_data['show_count']
);
Font-size unit は次のように変更することができます。
wp_tag_cloud( [ 'unit' => 'rem', 'smallest' => 1, 'largest' => 4 ] );
またはタグクラウドウィジェット用の widget_tag_cloud_args
フィルタを使用します。
例:
ここではすべてのタグクラウドのアンカーにbtn btn-xs btn-primary
クラスを追加します。
add_filter( 'wp_generate_tag_cloud_data', function( $tag_data )
{
return array_map (
function ( $item )
{
$item['class'] .= ' btn btn-xs btn-primary';
return $item;
},
(array) $tag_data
);
} );
クラスはwp_generate_tag_cloud()
関数にハードコードされています。あなたの唯一の選択肢は、wp_generate_tag_cloud
フィルタを通して最終文字列出力を修正することです。