format=array を指定すれば、PHP の配列で取得できます。
===============================================
公式マニュアルより引用
http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_tag_cloud
format
(文字列) クラウド表示のフォーマット
‘flat’ (初期値) タグをホワイトスペースで区切る
‘list’ タグを class=’wp-tag-cloud’ 付きの ul(番号なし箇条書き)内に表示
‘array’ タグを配列に格納し、タグクラウドデータを PHP で扱えるように配列のまま返す。注: 配列の取得(表示ではなく)は WordPress 2.5 以上で使えます。
===============================================
あとは、[任意のクラス名-B]等をPHPで生成すればよいでしょう。
PHPの配列で取得するということはfunctions.phpへの記述でしょうか。
色々と調べながら下記のような内容で行なってみましたが、繰り返しの処理が行われないらしくリストタグのクラス名が一定のままでした。
PHPに対して知識が足らずで申し訳ないです。
ソース側記述
<ul class="leftnavi_ranking">
<?php ranking_tag_cloud(); ?>
</ul>
functions.php側への追記
/**
* タグクラウドの調整
*/
function ranking_tag_cloud(){
$tags = wp_tag_cloud(
array(
'format' => 'array',
'smallest' => '10',
'largest' => '10',
'number' => '10',
'order' => 'DESC',
'orderby' => 'count'
)
);
foreach($tags as $tag){
preg_match('/href=\'http:\/\/.+?\'/', $tag, $matche);
$href = $matche[0];
preg_match('/style=\'.+?\'/', $tag, $matche);
$score = round(floatval(preg_replace('/[^0-9\.]/', '', $matche[0])));
$class_score = "tag-score-{$score}";
preg_match('/title=\'.+?\'/', $tag, $matche);
$title = $matche[0];
$tag_name = strip_tags($tag);
$post_count = 1;//カウンターの初期化
$class = ($post_count % 2) ? 'bg_white' : 'bg_non';//カウントが2で割れればodd、割れなければeven
echo "<li class=\"$class\">";//上記で得た値をクラスへ代入
echo "<a $href $title>$tag_name</a></li>";
$post_count++; //カウンターを1増やす
}
}
foreach の中で、
$post_count = 1;//カウンターの初期化
とやっているので、ループで毎回カウンターを初期化してしまっていますね。
この部分を、foreach の外側にもっていってみてはどうでしょうか。
foreachからループが始まっているのを失念していました。
ループ内でいくらカウントを加算しようとしてもそれは無理ですよね・・・ 簡単なミスでお恥ずかしい。
ご指摘通りの手順で無事目的の仕様が実現できました。
ありがとうございました!