WordPress как на ладони

Изменить в админке сортировку записей по-умолчанию

Мне нужно изменить сортировку записей в админке по-умолчанию.

В оригинале по ссылке /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

Понятное дело, после обновления нужно опять вручную прописывать ссылку. Это конечно пустяк, но хотелось бы найти более правильное решение.

0
maxxwell
7.3 года назад 19
  • 0
    campusboy4752 www.youtube.com/c/wpplus

    В 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' );
    	}
    }
    maxxwell 7.3 года назад

    Супер!

    user 6.2 года назад

    А есть код которые сортирует пользователей в админке по дате регистрации?

    campusboy 6.2 года назад
    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;
    } );
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация