Задать вопрос
@there4

Как задать сортировку списка по алфавиту?

Привет! Что-то я немного завис... есть у меня код, выводящий список закладок пользователя (заголовки записей):

/**
     * Выводим список закладок
     *
     * @param string $post_type
     * @param int $user_id
     * @param int $limit
     * @param bool $show_remove
     */
    function display_favlist( $post_type = 'all', $user_id = false, $limit = 10, $show_remove = true ) {

        $posts = $this->get_favorites( $post_type, $user_id, $limit );

        echo '<div class="favclass"><ul>';
        if ( $posts ) {

            $remove_title = __( 'Удалить из списка, 'wl1' );
            $remove_link = ' <a href="#" data-id="%s" title="%s" class="wl1-remove-favorite">x</a>';

            foreach ($posts as $item) {
                $extra = $show_remove ? sprintf( $remove_link, $item->post_id, $remove_title ) : '';
                printf( '<li><a href="%s">%s</a>%s</li>', get_permalink( $item->post_id ), get_the_title( $item->post_id ), $extra );
            }
        } else {
            printf( '<li>%s</li>', __( 'Нет закладок', 'wl1' ) );
        }
        echo '</ul></div>';
    }


Каким образом можно задать тут вывод списка с сортировкой по алфавиту?
  • Вопрос задан
  • 148 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
MedVedar
@MedVedar
e-commerce developer
Используйте функции сортировки. usort, например.
Ответ написан
Комментировать
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Сортировать лучше не на выводе в цикле, а еще при получении всех записей. В вашем случае за это отвечает вот этот код:

$posts = $this->get_favorites( $post_type, $user_id, $limit );


Покажите что там в методе get_favorites(). Судя по тому, что дальше вы работаете с массивом объектов, внутри этого метода вызывается get_posts(). Попросите его отсортировать для вас посты еще на этапе выборки из БД.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы