Изменить в админке сортировку записей по-умолчанию
Мне нужно изменить сортировку записей в админке по-умолчанию.
В оригинале по ссылке /wp-admin/edit.php сортировка по дате.
Мне нужно сделать чтобы по-умолчанию сортировка была по ID, в порядке убывания (зачем? - дата меняется при добавлении и дата указываемая в записи не соотв. реальной дате публикации). У меня параметр "свежести" ID.
Я нашел сносное решение:
в файле /wp-admin/menu.php меняю переменную $ptype_file = "edit.php";
на $ptype_file = "edit.php?orderby=ID&order=desc";
В итоге в админке в пункт "Записи" выводится ссылка /wp-admin/edit.php?orderby=ID&order=desc
Понятное дело, после обновления нужно опять вручную прописывать ссылку. Это конечно пустяк, но хотелось бы найти более правильное решение.
В functions.php темы добавьте:
add_action('pre_get_posts', 'change_order_post_list', 1 ); function change_order_post_list( $query ){ if( is_admin() && $query->is_main_query() && $query->query_vars['post_type'] == 'post' ) { $query->set( 'orderby', 'ID' ); } }Супер!
А есть код которые сортирует пользователей в админке по дате регистрации?
add_action( 'users_list_table_query_args', function ( $args ) { // Сортировка по дате регистрации $args['orderby'] = empty( $_REQUEST['orderby'] ) ? 'registered' : $_REQUEST['orderby']; // DESC - список начинать с новых пользователей $args['order'] = empty( $_REQUEST['order'] ) ? 'DESC' : $_REQUEST['order']; return $args; } );