0

我之前问过一个问题 -这里- 关于如何将我的边框颜色设置为随机颜色。我有这个工作。

如您所见,我的数组中有 7 种颜色。如何编辑我的代码,以便一旦选择了颜色,就不会重复使用它。我的页面上有 3 个 div 将使用颜色,所以我想要可能的 7 种颜色中的 3 种不同颜色。

我如何使用它的完整代码:

<div id="featured-posts" class="container_12">
<?php
 global $post;
 $myposts = get_posts('numberposts=3&category=12');
 foreach($myposts as $post) :
 ?>

 <?php global $post; ?>
    <?php
    $src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), array( 5600,1000 ), false, '' );
    ?>

        <?php
            $colors = array("#000000", "#949c51", "#571c1e", "#f36533", "#782a80", "#f6a41d", "#ed1b24");
            $randomColor = $colors[array_rand($colors)];
        ?>

<a href="<?php the_permalink(); ?>">
<div class="grid_4 featured-home" style="background: url(<?php echo $src[0]; ?> ) !important;">
    <div class="featured-details" style="border-color: <?php echo $randomColor; ?>;">   
        <h4 style="color: <?php echo $randomColor; ?>;"><?php the_title(); ?></h4>
        <p><?php the_excerpt(); ?>  <q style="color: <?php echo $randomColor; ?>; font-weight:bold !important;">Read more &gt;</q></p>
    </div>
    <div class="featured-lower" style="border-color: <?php echo $randomColor; ?>;"></div>
</div></a>
 <?php endforeach; ?>
 </div>
4

2 回答 2

2

您可以洗牌,然后每次从数组中弹出最后一个元素:

定义你的颜色数组一次(这需要从你的循环中删除):

$colors = array("#000000", "#949c51", "#571c1e", "#f36533", "#782a80", "#f6a41d", "#ed1b24");

然后每次使用 randomColor 时,都会对其进行洗牌并删除要使用的数组的最后一个元素:

shuffle($colors);
$randomColor = array_pop($colors);
于 2012-12-04T00:15:51.963 回答
0

您必须添加一个函数,其中从数组中选择随机颜色,从数组中删除并返回。然后你必须在你的内联样式设置上调用这个函数。

但是你真的应该避免使用内联样式。你也可以用更简洁的方式用SASS做这样的事情。

于 2012-12-04T00:07:42.340 回答