Поддержка Проблемы и решения Изменить в админке сортировку записей по-умолчанию

  • Решено maksymyushytsyn

    (@maksymyushytsyn)


    Мне нужно изменить сортировку записей в админке по-умолчанию.
    В оригинале по ссылке **/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

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

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • хотелось бы найти более правильное решение.

    http://wp-kama.ru/id_995/dopolnitelnyie-sortiruemyie-kolonki-u-postov-v-adminke.html
    https://ru.wordpress.org/plugins/catch-ids/
    https://wordpress.org/plugins/reveal-ids-for-wp-admin-25/
    В платной версии https://ru.wordpress.org/plugins/codepress-admin-columns/

    • Ответ изменён 7 лет, 4 месяца назад пользователем SeVlad.

    SeVlad, это решение для создания сортируемых колонок. Я их умею создавать. У меня другая задача.

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

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

    Полагаю можно написать функцию, но как я не знаю. Да и знать не хочу.
    Проще изменить ссылку в пункте меню. Хотя бы даже с пом бесплатной версии последнего плагина.

    вы не с той стороны к этому подходите.
    пробуйте удалить кодом меню «все записи» и кодом же добавить туда новое меню с нужной вам ссылкой.

    как пример:

    
    //свое меню в "Записях" start
    function wph_own_menu()
    {
        global $menu, $submenu;
        $parent_menu = 'edit.php';
        $menu_name = 'Записи с сортировкой';
        $capability = 'administrator';
        $url = 'edit.php?orderby=ID&order=desc';
    
        $submenu[$parent_menu][] = array( $menu_name, $capability, $url );
    }
    add_action( 'admin_menu', 'wph_own_menu', 99);
    //свое меню в "Записях" end
    

    ну а как удалить стандартное и как поменять порядок меню в админке ищите в гугле сами.

    Flector, спасибо, очень интересное решение. Попробую.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    как удалить стандартное и как поменять порядок меню в админке

    Не проще ли воспользоваться фильтром pre_get_posts?

    
    function order_posts_in_admin_by_id( $query ) {
    	if ( is_admin() && $query->is_main_query() ) {
    		$query->set( 'orderby', 'ID' );
    	}
    }
    add_action( 'pre_get_posts', 'order_posts_in_admin_by_id' );
    

    Не проще ли воспользоваться фильтром pre_get_posts?

    проще, но что-то в голову не пришло, что оно в админке работает.

    Sergey Biryukov, спасибо за совет. Остановился на вашем варианте.
    Flector, ваше решение тоже работает, оно мне пригодилось еще и для других задач.

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Тема «Изменить в админке сортировку записей по-умолчанию» закрыта для новых ответов.