@Denis_8106

Как сделать сортировку по алфавиту с выводом первой буквы?

Нашел на форуме вот такой код сортировки по алфавиту с выводом первой буквы

<?php
$args = array(
    'orderby' => 'title',
    'order' => 'ASC',
    'posts_per_page' => -1,
    'ignore_sticky_post' => 1
);

$query_city_list = new WP_Query($args);
if ($query_city_list->have_posts()) {
    while ($query_city_list->have_posts()) : $query_city_list->the_post();
        $this_char = mb_strtoupper(substr($post->post_title, 0, 1), 'UTF-8');
        if ($this_char != $last_char) {
            $last_char = $this_char;
            echo '<strong>' . $last_char . '</strong>';
        } ?>

<div class="option">
    <?php the_title(); ?>
    <a href="<?php the_permalink() ?>"><?php the_field('city-region'); ?></a>
</div>
<?php
    endwhile;
}
wp_reset_query();
?>


Сортировка работает как надо, но!!! выдает ошибку "Notice: Undefined variable: last_char in". Можно как-то исправить код, чтобы эта ошибка исчезла? Да, я понял, что не хватает значение переменной last_char, но как задать правильно значения этой переменной в данном коде?
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
IvanU7n
@IvanU7n
nothing interesting here
элементарно: присвоить ей пустое значение перед циклом:
$last_char = '';

а ещё код не будет работать для нелатиницы при нормальном конфиге PHP, лучше substr() заменить на её аналог из mbstring mb_substr()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы