Как отсортировать админку произвольного типа записи WordPress по произвольному полю
-
-
Вот еще один полезный ответ,чтобы отсортировать сообщения по ....
** http://wordpress.stackexchange.com/questions/66455/how-to-change-order-of-posts-in-admin**Here another useful answer, to sort posts by ....
**http://wordpress.stackexchange.com/questions/66455/how-to-change-order-of-posts-in-admin**- 1
- 2014-05-22
- T.Todua
-
2 ответ
- голосов
-
- 2010-12-12
Начиная с WordPress 3.1 (я использую бета-версию) столбцы теперь можно сортировать по их заголовкам.
В следующем сообщении подробно рассказывается,как их реализовать.
As of WordPress 3.1 (I'm using the beta) columns can now be sortable via their titles.
The following post details how implement them.
-
- 2016-05-16
Вот простое решение:
/* --------Sortable Events on Dashboard - show start date, time, venue--------- */ /*------------------------------------------------------------------------------- Custom Columns -------------------------------------------------------------------------------*/ function my_*YOUR POST TYPE*_columns($columns) { $columns = array( 'cb' => '<input type="checkbox" />', 'title' => 'Title', 'your_custom_field' => 'Custom Field Name', 'date' => 'Date', ); return $columns; } function my_custom_columns($column) { global $post; if($column == 'your_custom_field') { if(get_post_meta($post->ID, 'your_custom_field', true);) { echo get_post_meta($post->ID, 'your_custom_field', true); } } } add_action("manage_posts_custom_column", "my_custom_columns"); add_filter("manage_edit-*YOUR POST TYPE*_columns", "my_events_columns"); /*------------------------------------------------------------------------------- Sortable Columns -------------------------------------------------------------------------------*/ function my_column_register_sortable( $columns ) { $columns['your_custom_field'] = 'your_custom_field'; return $columns; } add_filter("manage_edit-*YOUR POST TYPE*_sortable_columns", "my_column_register_sortable" );
Просто замените ТИП ЗАПИСИ на "ваше_пользовательское_поле"
Here's a simple solution:
/* --------Sortable Events on Dashboard - show start date, time, venue--------- */ /*------------------------------------------------------------------------------- Custom Columns -------------------------------------------------------------------------------*/ function my_*YOUR POST TYPE*_columns($columns) { $columns = array( 'cb' => '<input type="checkbox" />', 'title' => 'Title', 'your_custom_field' => 'Custom Field Name', 'date' => 'Date', ); return $columns; } function my_custom_columns($column) { global $post; if($column == 'your_custom_field') { if(get_post_meta($post->ID, 'your_custom_field', true);) { echo get_post_meta($post->ID, 'your_custom_field', true); } } } add_action("manage_posts_custom_column", "my_custom_columns"); add_filter("manage_edit-*YOUR POST TYPE*_columns", "my_events_columns"); /*------------------------------------------------------------------------------- Sortable Columns -------------------------------------------------------------------------------*/ function my_column_register_sortable( $columns ) { $columns['your_custom_field'] = 'your_custom_field'; return $columns; } add_filter("manage_edit-*YOUR POST TYPE*_sortable_columns", "my_column_register_sortable" );
Just replace YOUR POST TYPE and 'your_custom_field'
При редактировании одного из моих настраиваемых типов сообщений я хочу иметь возможность отображать все записи по настраиваемому полю вместо даты их публикации (что для настраиваемого типа сообщений,вероятно,не актуально). Я получил информацию из комментариев к сообщению в блоге о настраиваемых типах сообщений,и автор сказал,что это возможно,и что он даже сделал это так,чтобы вы могли щелкать имена столбцов для настраиваемой сортировки. Он упомянул функцию
posts_orderby
,которую я отметил в своих комментариях,но теперь я могу найти сообщение в блоге больше. Какие-либо предложения? Я видел одно решение,в котором использовалосьА функция
check_page
использовалаadd_filter
для изменения запрос,но я уверен,что он будет работать только в файлах темы,а не в области администрирования.