Поддержка Проблемы и решения Как разобраться с этим циклом?

  • Есть почти готовый код, который выводит список всех категорий в колонки. В нем для того чтобы он заработал как надо, скорее всего лишь нужно заменить цифры. Вроде все просто, но никак не могу их подобрать. Может кто поможет. Есть две разных задачи:

    1) Вывести список категорий сайта в 4 колонки

    2) Вывести список категорий сайта в 5 колонок

    Вот сам код:

    <?php
    $cats = explode("<br />",wp_list_categories('title_li=&echo=0&depth=1&style=none'));
    $cat_n = count($cats) - 1;
    for ($i=0;$i< $cat_n;$i++):
    if ($i<$cat_n/4):
    $cat_left = $cat_left.'<li>'.$cats[$i].'</li>';
    elseif ($i>=$cat_n/4):
    $cat_right = $cat_right.'<li>'.$cats[$i].'</li>';
    elseif ($i>=$cat_n/4):
    $cat_right3 = $cat_right3.'<li>'.$cats[$i].'</li>';
    elseif ($i>=$cat_n/4):
    $cat_right4 = $cat_right4.'<li>'.$cats[$i].'</li>';
    endif;
    endfor;
    ?>
    <table>
    <tr><td>
    <ul class="catleft">
    <?php echo $cat_left;?>
    </ul></td>
    <td>
    <ul class="catright">
    <?php echo $cat_right;?>
    </ul>
    </td>
    <td>
    <ul class="catright">
    <?php echo $cat_right3;?>
    </ul>
    </td>
    <td>
    <ul class="catright">
    <?php echo $cat_right4;?>
    </ul>
    </td>
    </tr></table>
Просмотр 7 ответов — с 1 по 7 (всего 7)
  • По моему ваш код это городьба, все делается через css

    Спасибо всем кто отвечал. Сам решил проблему! Плагины всегда понятно, что работают, но не хочется нагружать вордпресс. Вот какая четко работающая городьба получилась))) :

    <?php
    $get_cats = wp_list_categories( 'echo=0&title_li=&depth=1&hide_empty=0' );
    // Get cats 
    
    $cat_array = explode('</li>',$get_cats);
    // Split into array items
    
    $columns = 4;
    // How many columns (virtual)
    
    $cats_shown = 0;
    // Don't touch this, this is just a counter (used below)
    
    echo '<ul style="display:inline;">';
    
    foreach($cat_array as $category) {
    	$cats_shown++;
    
    	// The 2 lines below can be removed if you apply the style definitions to the classes (ie. cat-item, cat-item a etc..)
    	// This was just quicker and easier for me to use whilst testing the code.
    	$category = str_replace('<li','<li style="display:inline"',$category);
    	$category = str_replace('<a href','<a style="width:160px;display:block;float:left" href',$category);
    
    	if($cats_shown % $columns == 0) {
    		// If the counter is a multiple of the columns to show
    		print $category.'</li></ul><br /><ul style="display:inline;">';
    	}
    	else {
    		// Else just a regular item
    		print $category.'</li>';
    	}
    }
    echo '</ul>';
    ?>

    плагины нагружают wordpress не больше, чем код. если, конечно, они написаны нормально.

    Flector, и это верно. Я забыл еще сказать о том, что при обновлениях вордпресс плагины могут перестать работать, а с кодом значительно меньше такая вероятность. В этом еще плюс кода.

    как раз наоборот — автор плагина свое детище может обновить, а вот когда код перестанет работать — вам придется закопаться на форумах поддержки wordpress, чтобы узнать, как и что изменилось и как это исправить.

    Модератор Yuri

    (@yube)

    при обновлениях вордпресс плагины могут перестать работать, а с кодом значительно меньше такая вероятность

    Отнюдь. По большому счету, нет разницы, где находится код, главное — что в нем.

    Зато код, вписанный в functions.php Темы (чужой) при обновлении Темы просто исчезает. И при смене Темы плагин остается, а «вписанный» код нужно заново вносить.

    Мораль: у всего есть свои плюсы и свои минусы.

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Как разобраться с этим циклом?» закрыта для новых ответов.