0

以前、境界線の色をランダムな色に設定する方法について、ここで質問しました。私はこれを機能させています。

ご覧のとおり、配列には 7 色の可能性があります。色が選択されたら再利用されないようにコードを編集するにはどうすればよいですか。私のページには色を使用する div が 3 つあるので、可能な 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 に答える