Как изменить порядок категорий в панели администратора?

24 мая 2012 г., 01:08:07
Просмотры: 36.1K
Голосов: 6

Порядок категорий в панели администратора отображается по алфавиту. Можно ли изменить его на пользовательский порядок?

0
Все ответы на вопрос 3
4

Нашел ответ в этом ответе.

add_filter( 'get_terms_args', 'wpse_53094_sort_get_terms_args', 10, 2 );
function wpse_53094_sort_get_terms_args( $args, $taxonomies ) 
{
    global $pagenow;
    if( !is_admin() || ('post.php' != $pagenow && 'post-new.php' != $pagenow) ) 
        return $args;
    
    $args['orderby'] = 'slug';
    $args['order'] = 'DESC';

    return $args;
}

order может быть ASC или DESC, а orderby может принимать значения:

  • count
  • description (должно работать, но у меня срабатывало нестабильно, требуются дополнительные тесты)
  • name
  • slug


Интересные плагины

(можем ли мы назвать их Плинтересами?)

Первые два очень компактные и могут быть легко встроены в ваш код.

  • Category Checklist Expander : увеличивает высоту списка категорий, чтобы не требовалась прокрутка

  • Category Checklist Tree : перестраивает метабокс категорий, позволяя модифицировать его код для дальнейшей стилизации/адаптации - вот скриншот его работы

    Скриншот работы плагина Category Checklist Tree

  • Gecka Terms Ordering : создает вспомогательную таблицу в базе данных (wp_termmeta) для управления порядком. Поддерживает drag and drop.

25 мая 2012 г. 02:32:55
Комментарии

Большое спасибо! [помимо этих плагинов, я также написал шорткод, который отображает категории в виде дерева]

Shimon S Shimon S
25 мая 2012 г. 10:25:23

Интересно, как я могу показать определенный термин сверху?

Shimon S Shimon S
25 мая 2012 г. 11:06:45

Возможно, самый простой способ — это манипуляции с DOM через jQuery, посмотрите этот ответ для вдохновения :)

brasofilo brasofilo
25 мая 2012 г. 11:20:00

@s976 - забыл отметить тебя в предыдущем комментарии... в плагине scribu, CCT, есть jQuery-код для автоматической прокрутки списка, можешь почерпнуть идеи и оттуда.

brasofilo brasofilo
25 мая 2012 г. 12:42:17
1

Используйте плагин Advanced Custom Fields (этот плагин полезен во многих отношениях). Затем создайте произвольное поле для сортировки (category_order) с правилом 'Taxanomy_Term' равно 'Categories'.

Затем в файле functions.php вашей темы (или в другом подходящем месте) используйте:

$categories = get_categories( $args );  

usort($categories, function($a, $b) {
   return get_field("category_order", "category_".$a->term_id) - get_field("category_order", "category_".$b->term_id);
});

foreach ($categories as $category){
...

Где category_order - это имя поля, которое вы создали с помощью ACF.

Эта запись вдохновлена этой статьей.

28 сент. 2016 г. 10:21:10
Комментарии

Это именно то, что я искал, и это также отлично работает с пользовательскими таксономиями - просто замените 'category_' на название вашей таксономии.

Thomas Bindzus Thomas Bindzus
1 июл. 2017 г. 14:14:51
5
-1

По умолчанию такой опции нет, но есть два других способа.

  1. Изменить в файлах темы http://codex.wordpress.org/Template_Tags/wp_list_categories
  2. Использовать плагин, например http://wordpress.org/extend/plugins/my-category-order/
24 мая 2012 г. 01:13:48
Комментарии

Я думаю, ваше предложение касается стороны пользователей. А я ищу, как изменить порядок на стороне администратора.

Shimon S Shimon S
24 мая 2012 г. 13:52:54

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

user1337 user1337
24 мая 2012 г. 18:26:29

@user1337 - вы путаете пользователя "admin" (или обладающего административными правами на сайте) с бэкендом WordPress, также называемым Админкой или Панелью управления.

brasofilo brasofilo
24 мая 2012 г. 22:30:05

@brasofilo - Вовсе нет. Либо пользователь "admin", либо кто-то, у кого есть доступ к плагинам в админке или дашборде, может установить этот плагин и изменить порядок отображения категорий. Также можно использовать плагин для ролей, чтобы делегировать эту возможность другим ролям, помимо администратора.

user1337 user1337
24 мая 2012 г. 22:57:32

Будет ли плагин работать в этом метабоксе?

brasofilo brasofilo
24 мая 2012 г. 23:22:00