Как изменить порядок результатов get_post_types() в WordPress в алфавитном порядке?

#wordpress #custom-post-type #alphabetical

Вопрос:

Я могу вывести список моих пользовательских типов сообщений, используя приведенный ниже код. Как я могу упорядочить результаты в алфавитном порядке?

 $args = array(
'public'   => true,
'_builtin' => false,
);
$output = 'names'; // names or objects, note names is the default
$operator = 'and'; // 'and' or 'or'
$post_types = get_post_types( $args, $output, $operator ); 
foreach ( $post_types  as $post_type ) {
$pts = get_post_type_object( $post_type );
$post_title = $pts->labels->name;
echo '<li><a href="' . get_post_type_archive_link( $post_type ) . '">' . $post_title . '</a></li>';
}
?>
 

Ответ №1:

Самым простым способом было бы использовать PHP для сортировки значений возвращаемого массива вместо запроса отсортированного списка из самого WordPress.

 $args = array(
'public'   => true,
'_builtin' => false,
);
$output = 'names'; // names or objects, note names is the default
$operator = 'and'; // 'and' or 'or'
$post_types = get_post_types( $args, $output, $operator );
asort( $post_types ); // the array is passed by reference, not assignment
// then loop your [now sorted] results
 

asort Функция будет поддерживать связь с ключом. Если вы хотите, чтобы он переиндексировал массив, используйте sort вместо этого.