2013-11-18 1 views
-1

На моей домашней странице у меня есть 6 блоков, включая несколько настраиваемых полей.Случайные пользовательские поля

Я хотел бы иметь случайное отображение этих 6 блоков.

Мои коды просто выглядит следующим образом:

<div class="bloc"> 
<h2><?php the_field('titre1'); ?></h2> 
<div class="content"> 
<p><?php the_field('description1'); ?></p> 
</div> 
<p class="more"><a href="<?php the_field('url1'); ?>">read more</a></p> 
</div> 

<div class="bloc"> 
<h2><?php the_field('titre2'); ?></h2> 
<div class="content"> 
<p><?php the_field('description2'); ?></p> 
</div> 
<p class="more"><a href="<?php the_field('url2'); ?>">read more</a></p> 
</div> 

<div class="bloc"> 
<h2><?php the_field('titre3'); ?></h2> 
<div class="content"> 
<p><?php the_field('description3'); ?></p> 
</div> 
<p class="more"><a href="<?php the_field('url3'); ?>">read more</a></p> 
</div> 

etc... (6 times) 

Вы знаете, если есть способ рандомизации это?

Я благодарю вас за вашу помощь!

+0

Вы хотите, чтобы вы выбрали 1 из 6, чтобы отобразить (выбрано случайным образом), или вы хотите, чтобы они были заказаны случайным образом, но каждый раз показывали все 6? –

+0

2-й вариант: я хочу, чтобы они были заказаны случайным образом, показывая 6 раз, да – imudo

ответ

0

Получить каждый блок и push в php array как string. Затем вызовите shuffle($array), а затем foreach через них, чтобы вывести их.

Если вам нужны более конкретные инструкции, дайте мне знать. EDIT: полные инструкции;

<?php 
// init array 
$blocks = array(); 
// loop through 1 to 6 
for($i=1;$i<=6;$i++) { 
    // create a block of html 
    // note I use $i here to get the correct fields 
    // also note I've used get_field so its not echoed (as opposed to the_field) 
    $block = '<div class="bloc"> 
        <h2>'.get_field('titre'.$i, 'option').'</h2> 
        <div class="content"> 
         <p>'.get_field('description'.$i, 'option').'</p> 
        </div> 
        <p class="more"><a href="'.get_field('url'.$i, 'option').'">read more</a></p> 
       </div>'; 
    // push this block of html into the array 
    array_push($blocks, $block); 
} 
// shuffle the array of blocks randomly 
shuffle($blocks); 

// loop through them and echo out each html block 
foreach ($blocks as $index => $block) { 
    echo $block 
} ?> 

Удачи вам!

EDIT: Извините, набрал это очень быстро и сделал несколько ошибок.