• Решено turbomen24

    (@turbomen24)


    Добрый день.
    Мне необходимо вывести списки категорий (кастомных таксономий) по буквам латинского алфавита.

    Я пробую использовать get_terms и name__like=*буква*, но этот аргумент ищет все категории, в которых есть данная буква, и необязательно вначале. Мне необходимо отфильтровать именно по первой букве, чтобы получился на выходе список, *буква* — *категории на эту букву*.

    $terms = get_terms( array(
    	'taxonomy'      => 'movies',
    	'name__like'    => 'b',
    ) );		
    foreach ($terms as $term) {
    	echo '<li>' . ' <a href="' . get_term_link($term) . '">' . $term->name . '</a> ' . '</li>';
    }
Просмотр 1 ответа (всего 1)
  • Решение найдено.

    $terms = get_terms( array(
    	'taxonomy'      => 'movies',
    	'hide_empty'    => 0, 
    ) );		
    foreach( $terms as $k => $term ){
    	$fl = get_first_letter( $term->name );
    	$prev_fl = isset( $terms[ ($k-1) ] ) ? get_first_letter( $terms[ ($k-1) ]->name ) : '';
    	if( $prev_fl !== $fl )		
    	echo $fl . '<br>';	
    	echo '<li>' . ' <a href="' . get_term_link($term) . '">' . $term->name . '</a> ' . '</li>';
    }
    
    function get_first_letter( $str ){
    	return mb_substr($str, 0, 1, 'utf-8');
    }	
Просмотр 1 ответа (всего 1)
  • Тема «Сортировка категорий по буквам алфавита» закрыта для новых ответов.