• Решено DirtyDan

    (@dirtydan)


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

    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

    Автор DirtyDan

    (@dirtydan)

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

    <?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 не больше, чем код. если, конечно, они написаны нормально.

    Автор DirtyDan

    (@dirtydan)

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

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

    Модератор Юрій

    (@yube)

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

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

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

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

Просмотр 7 ответов — с 1 по 7 (всего 7)

Тема «Как разобраться с этим циклом?» закрыта для новых ответов.