Сортировать запрос по автору: 1 автор, затем другие


У меня есть тип публикации "статья", и на странице архива статей я хотел бы показать все статьи, отсортированные по автору.

function kia_adjust_the_query( $query ) {

    // change posts_per_page param
    if ( is_post_type_archive( 'article' ) ) {
         set_query_var('posts_per_archive_page',-1);
         set_query_var('order','ASC');
         set_query_var('orderby','author');
    }


}
add_action('pre_get_posts', 'kia_adjust_the_query');

Вышесказанное настраивает основные настройки запроса. тем не менее, блог в основном принадлежит 1 автору, скажем, "Бобу"... поэтому в идеале я хотел бы выделить все сообщения Боба в первую колонку для акцента, а затем продолжить с другими авторами.

Возможно ли это сделать во время цикла while каким-либо образом или я нужны 2 отдельных запроса?

//РЕДАКТИРОВАТЬ для дополнительной сложности: обычно я стараюсь свести свои вопросы к минимуму, но в данном случае я думаю, что зашел слишком далеко

Мой клиент является единственным автором в своем блоге. однако он использует мета-поле ("guest_author") и фильтрует get_the_author, чтобы создать псевдоним для гостевых сообщений, которые он на самом деле не писал, без создания учетных записей для других пользователей.

Могу ли я отсортировать сообщения автора, которые являются его сообщениями (поэтому в мета-поле нет значения) и затем другими авторами (тот же идентификатор автора, но другие значения "guest_author"). если это невозможно, будет ли лучшим способом приблизиться к этому - создать фиктивные учетные записи для других авторов?

Author: helgatheviking, 2012-07-16

1 answers

Вы могли бы сделать это с помощью специального posts_orderby:

add_filter( 'posts_orderby', 'wpa58715_posts_orderby' );

function wpa58715_posts_orderby( $orderby_statement ) {
    if ( is_post_type_archive( 'article' ) ) {
        global $wpdb;
        $orderby_statement = "FIELD($wpdb->posts.post_author, 42) DESC, $wpdb->posts.post_author";
        return $orderby_statement;
    }
}

Замените свой идентификатор автора на 42.

 1
Author: Milo, 2012-07-17 00:46:15