+7 982 100 5 999

Алфавитная сортировка A-Z

<?php

// Определяем текущую категорию.
$the_cat_id = get_queried_object_id();

// Задаём массив параметров для пользовательского запроса WP_Query.
$args_az = array(
    'post_type'   => 'logos',
    'post_status' => 'publish',
    'numberposts' => -1,
    'tax_query'   => array(
        array(
            // Таксономия 'news_cat'.
            'taxonomy' => 'newscat',
            'field'    => 'id',
            'terms'    => $the_cat_id,
        ),
    ),
);

// Запрос WP_Query функцией get_posts().
$query_az = get_posts( $args_az );

// Перебираем каждый заголовок записи, отобрав первую букву в массив '$all_titles_arr'.
$all_titles_arr = array();
foreach ( $query_az as $post_az ) :
    setup_postdata( $post_az );
    $the_title        = get_the_title( $post_az->ID );
    $all_titles_arr[] = mb_strtolower( mb_substr( $the_title, 0, 1, 'UTF-8' ) );
endforeach;
wp_reset_postdata();

// Формируем массив из списка букв от 'a' до 'z'.
$az_range_arr = range( 'a', 'z' );

// Подготовка различных классов для подсветки кнопок навигации.
foreach ( $az_range_arr as $letter ) :
    $letter_status = '';

    // Существует ли данная буква в массиве 'all_titles_arr'.
    if ( ! in_array( $letter, $all_titles_arr, true ) ) :
        $letter_status .= ' disabled';
    endif;

    // Совпадает ли буква с текущим параметром GET массива.
    if ( isset( $_GET['az'] ) && $letter === $_GET['az'] ) :
        $letter_status .= ' active';
    endif;
    ?>
    <li class="page-item<?php echo esc_attr( $letter_status ); ?>"><a class="page-link text-uppercase" href="<?php echo esc_url( add_query_arg( 'az', $letter, 'http://test.danilsmg.ru/logos/' ) ); ?>"><?php echo esc_html( $letter ); ?></a></li>
    <?php
endforeach;

$all = '';

// Если отсутствует параметр $_GET['az'], деактивировать кнопку "Все".
if ( ! isset( $_GET['az'] ) ) :
    $all = ' disabled';
endif;
?>

<?php
$the_cat_id = get_queried_object_id();
$az_range_arr = range( 'a', 'z' );
foreach ( $az_range_arr as $letter ) : ?>
<li class="page-item"><a class="page-link text-uppercase" href="<?php echo esc_url( add_query_arg( 'az', $letter, 'http://test.danilsmg.ru/logos/' ) ); ?>"><?php echo esc_html( $letter ); ?></a></li>
<?php endforeach; ?>

Выводим первую букву алфавита на странице archive.php в заголовке

<?php $title = get_the_title(); echo mb_substr($title,0,1); ?>