Как изменить порядок сообщений в Admin?

8

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

urok93
источник

Ответы:

16

Если вы не хотите всегда щелкать по столбцу «Заголовок», чтобы отсортировать сообщения по заголовкам, вы можете поместить этот код либо в файл текущей активной темы WordPress functions.php, либо в плагин. Это автоматически всегда сортирует ваши сообщения, поэтому вам не нужно каждый раз нажимать на заголовок столбца.

Вы можете использовать это для установки порядка сортировки по умолчанию для типов записей.

/* Sort posts in wp_list_table by column in ascending or descending order. */
function custom_post_order($query){
    /* 
        Set post types.
        _builtin => true returns WordPress default post types. 
        _builtin => false returns custom registered post types. 
    */
    $post_types = get_post_types(array('_builtin' => true), 'names');
    /* The current post type. */
    $post_type = $query->get('post_type');
    /* Check post types. */
    if(in_array($post_type, $post_types)){
        /* Post Column: e.g. title */
        if($query->get('orderby') == ''){
            $query->set('orderby', 'title');
        }
        /* Post Order: ASC / DESC */
        if($query->get('order') == ''){
            $query->set('order', 'ASC');
        }
    }
}
if(is_admin()){
    add_action('pre_get_posts', 'custom_post_order');
}

Вы можете использовать некоторые из этих примеров условий ...

/* Effects all post types in the array. */
if(in_array($post_type, $post_types)){

}

/* Effects only a specific post type in the array of post types. */
if(in_array($post_type, $post_types) && $post_type == 'your_post_type_name'){

}

/* Effects all post types in the array of post types, except a specific post type. */
if(in_array($post_type, $post_types) && $post_type != 'your_post_type_name'){

}

Если вы хотите применить эту сортировку ко ВСЕМ типам записей, независимо от того, являются ли они "встроенными" ...

Изменить это: $post_types = get_post_types(array('_builtin' => true), 'names');

К этому: $post_types = get_post_types('', 'names');

Майкл Эклунд
источник
Можно ли использовать внутри функции вместо проверки перед действиемif ( ! is_admin ) { return; }
urok93
Я полагаю, вы могли бы сделать это.
Майкл Эклунд
Вы должны добавить «return $ query;» до конца функции, иначе это не будет работать в более поздних версиях WordPress.
Jobst
Я думаю, что плагин запускает эту функцию и переопределяет мою пользовательскую функцию. Есть ли ловушка, чтобы убедиться, что мой код запускается, а не плагины?
Thomas_Hoadley
7

Ах, щёлкни по названию, чтобы переключить сортировку по алфавиту ....

введите описание изображения здесь

markratledge
источник
-1

Вы всегда можете добавить по адресу:

/edit.php?post_type=properties&orderby=date&order=desc

Vortex-On
источник
Почему post_typeэто здесь, дайте OP общий ответ ... мы можем заказать заголовок в заказе, нажав на столбец Заголовок
bravokeyl