目標は、ユーザーがマウスオーバーしたときに、Wordpressで生成されたタグクラウドにさまざまな色のCSS背景をランダムに割り当てることです。
私の方法(これまでのところ成功していません):
<?php
$colors = array( 0 => "#645676", "#427048", "#654335", "#ab2805", "#a59d57", "#302f2f", "#81510d" );
$tags = wp_tag_cloud('smallest=10&largest=10&unit=px&number=40&format=array&echo=0');
shuffle($tags);
foreach ($tags as $tag) {
shuffle($colors);
echo "<li style=\"a:hover=background:".$colors[0].";\"> $tag \n </li>";
}
?>
これを行うには、foreachPHPループが最も簡単な方法だと思いました。2つの配列($colorsと$tags)を作成しました。使用したい色の16進タグを$colorsに手動で入力しました。$ tagsには、このブログで最も人気のある40個のタグを取得するように設定したwordpressタグクラウド配列(興味がある場合は詳細はこちら:http://codex.wordpress.org/Function_Reference/wp_tag_cloud )が入力されます。
次に、$ tagsでPHPシャッフル関数を使用して上位40個のタグを混同し、それらの40個のタグをforeachループで実行します。次に、シャッフルされた$colorの1つをCSS疑似クラスにランダムに割り当てます。
コードは機能します。出力のサンプルを次に示します。
<li style="a:hover=background:#302f2f;"> <a href='http://localhost:8888/nutritionwonderland_2/tag/truvia/' class='tag-link-49' title='3 topics' style='font-size: 10px;'>truvia</a>
</li><li style="a:hover=background:#81510d;"> <a href='http://localhost:8888/nutritionwonderland_2/tag/cancer/' class='tag-link-8' title='11 topics' style='font-size: 10px;'>cancer</a>
</li><li style="a:hover=background:#427048;"> <a href='http://localhost:8888/nutritionwonderland_2/tag/antioxidants/' class='tag-link-93' title='4 topics' style='font-size: 10px;'>antioxidants</a>
</li>
問題:いずれかのタグにマウスを合わせると、背景が表示されません。これはCSSが悪いかもしれないと私に思わせます。
ピーナッツギャラリーに関するいくつかの質問:
1)PHPを介してCSS疑似クラスをランダムに適用するにはどうすればよいですか?
2)これが機能したとしても、CSSは標準に準拠してここに出力されますか?
3)ここで標準についても心配する必要がありますか?
返信をお待ちしております。よろしくお願いいたします。