我有一个wordpress网站,我试图使用数组将css类应用于元素。
我的数组如下:
<?php
$classes = array(
0 => 'highlight-color-1',
1 => 'highlight-color-2',
2 => 'highlight-color-3',
3 => 'highlight-color-4');
?>
然后,我在以下四个不同元素上使用以下html:
<div class="q element element--content ******">
我需要遍历数组并应用css类来替换*****以便我得到类似的东西
<div class="q element element--content highlight-color-4"></div>
<div class="q element element--content highlight-color-3"></div>
<div class="q element element--content highlight-color-2"></div>
<div class="q element element--content highlight-color-1"></div>
上下文代码部分
// Displays Post Detail
if( $WP_Query->post_count > 0) :?>
<ul class="faq">
<?php while ($WP_Query->have_posts()) : $WP_Query->the_post();
$classes = array(
0 => 'highlight-color-1',
1 => 'highlight-color-2',
2 => 'highlight-color-3',
3 => 'highlight-color-4');
?>
<div class="q element element--content ">
<div class="faq_plus"><img src="http://drbarbaramariposa.com/wp-content/plugins/accordion-faq-plugin/plus.png" ></div>
<div class="faq_title"><?php the_title(); ?></div>
</div>
<li class="a">
<?php if ( function_exists('has_post_thumbnail') && has_post_thumbnail() ) {
the_post_thumbnail('thumbnail');
}
?>
<?php the_content(); ?>
</li>
<?php $i++; endwhile; ?>
</ul>
<?php endif; ?>
任何帮助都非常感激。
CHRIS
答案 0 :(得分:0)
div和css类之间没有特定的关系 因为它只是一种颜色而被应用。如果页面生成6 它应该循环遍历数组以获得颜色1,颜色2, 颜色3,颜色4,颜色1,颜色2.这有意义吗?
您希望使用滚动计数器,该计数器根据while循环迭代对循环结构中的每个数组键值进行计数。基于您希望每个******
更改为提到的数组元素值,您可以像这样构造它:
<?php
$classes = array(
0 => 'highlight-color-1',
1 => 'highlight-color-2',
2 => 'highlight-color-3',
3 => 'highlight-color-4');
$counter = 0;
$counterMax = count($classes);
while ($WP_Query->have_posts()) : $WP_Query->the_post();
if($counter >= $counterMax) {
$counter = 0;
}
print "<div class='q element element--content ".$classes[$counter]."'>
$counter++;
?>
...
<?php $i++; endwhile;
unset($counter, $counterMax);
?>
$i++
做什么?
这样做是seta反向运行while循环的+1 ech时间,并且计数器是数组元素的引用键,如果计数器变得太大则会重置为零。
对此代码的假设是数组没有间隙,并且所声明的每个元素都需要$classes
数组中的一个值。
答案 1 :(得分:0)
非常简单
foreach($classes as $class){ ?>
<div class="q element element--content <?php echo $class?>></div>
<?php } ?>
答案 2 :(得分:0)
您可以在foreach循环中使用str_replace()。
foreach ($classes as $c){
echo str_replace("******",$c,"<div class='q element element--content ******'></div>");
}