Список категорий с произвольной сортировкой

Значит, есть у меня страницы где выводятся дочерние категории какой-либо категории и 4 последних поста из этой дочерней категории. Не суть.

Как сделать упорядоченный список категорий? Мой код, переделанный с кода agenius, обитателя сего сайта.

$ctax = 'category';
$ptype = 'post'; 
$posts_per_page = 4;
$category_id = get_category_by_slug('russian-category')->term_id;
$categories = get_categories( array ( 'taxonomy' => $ctax, 'parent' => $category_id ) );

foreach ( $categories as $cat )
{  
        $catname = $cat->name;
        $catid = $cat->term_id;
        echo '<div class="long-border"></div>';
        echo "<h2 class='category-title'>$catname</h2>";
        query_posts( array( 'post_type' => $ptype, $ctax => $catname, 'posts_per_page' => $posts_per_page, 'order'=>'DESC', 'category__in'=>$catid ) );
        if ( have_posts() ) : while ( have_posts() ) : the_post();
            category_template();

        endwhile; endif; echo "<br><br><br>"; wp_reset_query();

}

Как можно реализовать произвольный порядок вывода? Я долго пробовал с произвольными полями для категорий, но кажется, пока они работают не из ядра — это ерунда выходит.
У меня есть два варианта реализации, но они оба требуют влезания в кода.
1) Забить $categories категориями в нужном порядке.
2) Выводить всё это дело вообще без foreach’а, а просто запросом к определенной категории выводом 4 поста.
Второй способ ещё более деревянная реализация первого способа. И если первому ещё как-то можно обучить, то второй даже показывать не стоит. Тем не менее, это ужасно. У кого какие идеи есть на этот счет?

BuBlicK
Оцените автора
Добавить комментарий

  1. tiaurus

    Что-то похожее я видел тут: WordPress: Выводим блоки рубрик с сортировкой по дате последнего поста.

    Ответить
  2. BuBlicK автор

    Спасибо. Я понял суть, но мне нужен произвольный вывод. Даже если раскидать по постам определенные мета поля, он которых будет зависеть положение рубрики в списке, то выходит не совсем прозрачно и понятно.

    Ответить
  3. Gary

    Вам поможет такая строчка перед foreach

    shuffle($categories);

    В результате порядок элементов масива станет в случайном порядке.
    http://php.net/manual/en/function.shuffle.php

    Ответить
  4. Gary

    Вам поможет такая строчка перед foreach

    shuffle($categories);

    В результате порядок элементов масива станет в случайном порядке.
    http://php.net/manual/en/function.shuffle.php

    Ответить