Преобразовать код в функцию - PullRequest
0 голосов
/ 23 февраля 2012

Как преобразовать этот код:

    <?php
                    if(have_posts()):

                    $end = array(3,6,9,12,15,18,21,24,27,30,33,36,39,42,45);
                    $a = 0;
                    while (have_posts()) : the_post();
                    $a++;
                    global $post;
                ?>
                <li class="item_list<?php if (in_array($a, $end)) { echo " right"; } ?>">

в функцию, которая будет запускаться следующим образом

$display = 

Спасибо большое заранее:)

Ответы [ 2 ]

2 голосов
/ 23 февраля 2012

вы не можете превратить ваш код в функцию, потому что он является частью структуры if / while / end while / endif;

чтобы достичь желаемого, попробуйте альтернативно использовать оператор модуля:

<?php           
  if(have_posts()):             
     $a = 0;               
     while (have_posts()) : the_post(); 
        $a++;          
        global $post; ?> 

        <li class="item_list<?php if ($a%3 == 0) { echo " right"; } ?>"> 
0 голосов
/ 23 февраля 2012

Чтобы правильно использовать объекты WordPress, я бы указывал использовать «$ wp_query-> current_post», вместо того, чтобы делать подсчет такого рода.

Пример ниже:

if( have_posts() ) {
    // Before the loop

    while( have_posts() ){
        the_post();
        // The loop
        echo "<li class='" . ( $wp_query->current_post % 3 == 0 ? "right" : "" ) . "'></li>";

    }
    // After the loop

} else {
    // If don't have any posts
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...