Список дочерних рубрик таксономии

Здравствуйте.

Второй день воюю с таким функционалом.
Есть пользовательский тип записи "Объявления" – ad
Есть пользовательская таксономия – ads
В этой пользовательской таксономии есть рубрика "Автомобили" и подрубрики согласно производителей – Audi, BMW ….

Каким образом можно реализовать список подрубрик рубрики с буквицей и списком записей. Примерно такой функционал:

А

AUDI

  • запись 1
  • запись 2

ALFA ROMEO

  • запись 1
  • запись 2

B
BMW

  • запись 1
  • запись 2

Чтото похожее нашел (хотя не то что надо). Но проблема – сортировка по названиям постов и не видит кирилицу – только если пост начинается на английском.

<?php

 
$posts = new WP_Query("ads=auto&cat=$cat&orderby=title&order=ASC&showposts=-1");
if ($posts->have_posts()) :
    for($i='A';$i!='AA';$i++) :
?>
<?php
        while ($posts->have_posts()) :
            $posts->the_post();
            if( $i == strtoupper(trim(substr($post->post_title, 0, 1))) ) :
                if( !$a_z_header ) :
                    $a_z_header = 1;
?>
<h3 id="<?php echo $i; ?>"></a><?php echo $i; ?></h3>
    <ul>
<?php
                endif;
?>
    <li><a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php
            endif;
        endwhile;
?>
    </ul>
<?php
        $a_z_header = 0;
    endfor;
endif;
?>

Подскажите, как можно реализовать подобный функционал.

Все функции работы со строками типа substr надо поменять на их аналоги работающие с многобайтовой кодировкой (utf-8), в данном случае mb_substr (это чтобы с русскими символами было всё ок).

Александр.
Спасибо за ваш ответ.
Добавил в цикл аналог, все равно русские не выводит.
Сделал вот так

<?php
        while ($posts->have_posts()) :
            $posts->the_post();
            if( $i == strtoupper(trim(mb_substr($post->post_title, 0, 1))) ) :
                if( !$a_z_header ) :
                    $a_z_header = 1;
?>

Вам же написали "Все функции". strtoupper – тоже строкаовая функция. Кроме того, имеет смысл явно указывать кодировку.
Матчасть: http://www.php.net/manual/ru/ref.mbstring.php

Если честно, мало что мне это помогло.
Добавил mb_strtoupper – никаких изменений. если добавляю кодировку – выдает ошибку

Anonymous
Отправить
Ответ на: