Как изменить порядок сообщений в админке?
2 ответ
- голосов
-
- 2012-09-27
Если вы не хотите всегда щелкать столбец «Заголовок» для сортировки сообщений по заголовку,вы можете поместить этот код либо в файл
functions.php
вашей текущей активной темы WordPress,либо в плагин. Это всегда будет автоматически сортировать ваши сообщения,поэтому вам не нужно каждый раз нажимать на столбец заголовка.Вы можете использовать это для установки порядка сортировки по умолчанию для типов сообщений.
/* 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 you don't wish to always click the "Title" column to sort your posts by title, you can place this code in either your currently active WordPress theme's
functions.php
file, or within a plugin. This will automatically always sort your posts for you, so you don't have to click the title column every time.You can use this for setting default sort order on post types.
/* 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'); }
You can use some of these example conditions...
/* 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'){ }
If you wanted to apply this sorting on ALL post types, regardless of whether or not they are "built-in"...
Change this:
$post_types = get_post_types(array('_builtin' => true), 'names');
To this:
$post_types = get_post_types('', 'names');
-
Можно ли использовать в функции вместо проверки перед действием `if (! Is_admin) { возвращение; } `Is it ok to use within the function rather than check before the action `if ( ! is_admin ) { return; }`
- 0
- 2012-09-30
- urok93
-
Я полагаю,ты мог бы это сделать.I suppose you could do that.
- 0
- 2012-10-01
- Michael Ecklund
-
Вы должны добавить «return $ query;»перед завершением функции,иначе это не будет работать в более поздних версиях wordpress.You must add a "return $query;" before function end, otherwise this will not work in later wordpress editions.
- 0
- 2017-04-20
- Jobst
-
Я думаю,что плагин выполняет эту функцию и отменяет мою пользовательскую функцию.Есть ли ловушка,обеспечивающая запуск моего кода,а не плагинов?I think a plugin is running this function and overriding my custom function. Is there a hook to ensure that my code is run rather than the plugins?
- 0
- 2018-08-20
- Thomas_Hoadley
-
- 2012-09-27
А,нажмите на этот маленький заголовок,чтобы включить сортировку по алфавиту ....
Ah, click that little title thingy to toggle alphabetical sorting....
Как изменить порядок сообщений на панели администратора,чтобы они отображались в алфавитном порядке в соответствии с заголовком,а не сначала последними?