Amaç: rastgele kullanıcı tarafından bir mouseover Wordpress üretilen etiket bulutu farklı renk CSS arka atamak.
Benim yöntem (şimdiye kadar başarısız):
<?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>";
}
?>
Bir foreach döngüsü PHP bunu yapmak için en kolay yol olacağını düşündüm. Ben iki dizi ($ renkler ve $ etiketleri) yarattı. Ben elle kullanmak istediğim renklerin onaltılık etiketleri ile $ renkleri dolu. $ Etiketleri wordpress etiket bulutu dizi ile doldurulur (burada daha fazla bilgi ilginizi ise: http://codex.wordpress.org/Function_Reference/wp_tag_cloud) ki ben bu blogda 40 en popüler etiketler kapmak için belirledik.
Daha sonra, üst 40 etiketlerini kadar karıştırın $ etiketleri üzerinde PHP shuffle fonksiyonunu kullanmak daha sonra rastgele dışarı yankılandı alır CSS sözde sınıfa karıştırılan $ renklerden birini atar bir foreach döngü bu 40 etiketleri çalıştırın.
Kod burada çıktı bir örnek, çalışır:
<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>
Sorun: Ben etiketleri herhangi mouseover zaman, plan gösterir asla. Bu bana CSS kötü olabileceğini düşündürüyor.
A couple of questions for the peanut gallery:
1) How do you apply CSS pseudo classes randomly via PHP?
2) Even if this worked, would the CSS output here by standards compliant?
3) Should I even worry about standards here?
Zaman ayırdığınız için şimdiden teşekkürler - herhangi bir yanıt duymak ilgileniyor.