Нашёл решение сам, вот тут:
<?php if ($categories) { ?>
<h2 class="subkat"><?php echo $text_refine; ?></h2>
<div class="category-list">
<?php if (count($categories) <= 1) { ?>
<ul>
<?php foreach ($categories as $category) { ?>
<li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>
<?php } ?>
</ul>
<?php } else { ?>
<?php for ($i = 0; $i < count($categories);) { ?>
<ul>
<?php $j = $i + ceil(count($categories) / 1); ?>
<?php for (; $i < $j; $i++) { ?>
<?php if (isset($categories[$i])) { ?>
<li>
<div class="image"><img src="<?php print_r($categories[$i]['image']) ?>" alt="" /></div>
<a href="<?php echo $categories[$i]['href']; ?>"><?php echo $categories[$i]['name']; ?></a>
</li>
<?php } ?>
<?php } ?>
</ul>
<?php } ?>
<?php } ?>
</div>
<?php } ?>
Вместо цифр 2, 3 или 4 нужно поставить 1. Тогда условие, которое отвечает за определённое отображение элеаентов, вследствме того что категорий меньше, например, трёх или есть три - бужет выводится одним способом, если же больше - то другим (<?php } else { ?>). Решил эту проблему самым странным методом - выставил цифру 1. Всё встало так как надо + css
.category-list ul li {
text-align: center;
vertical-align: top;
height: 100%;
}
.category-list ul li {
display: inline-block;
}
Который придаст красоту отображения элементов при разном их колличестве.