Добавить пользовательский столбец в пользовательский тип типа сообщений в бэкэнд

У меня есть пользовательский тип сообщения, называемый событиями . В бэкэнде / администрировании я могу перечислить все эти пользовательские типы сообщений, то есть события :

введите описание изображения здесь

Как вы можете видеть, в этом обзоре есть три столбца: Заголовок , Теги и Дата . Каждое из этих событий имеет настраиваемое поле с именем eventDate .

Теперь у меня вопрос: как добавить сортируемый столбец EventDate в обзор событий (на фото выше)?

Solutions Collecting From Web of "Добавить пользовательский столбец в пользовательский тип типа сообщений в бэкэнд"

Крючки для создания собственных столбцов и связанных с ними данных для настраиваемого типа сообщений управляют _ {$ post_type} _posts_columns и управляют _ {$ post_type} _posts_custom_column соответственно, где {$ post_type} – это имя настраиваемого типа сообщения.

В этом примере из документации удаляется столбец автора и добавляется столбец таксономии и метаданных:

// Add the custom columns to the book post type: add_filter( 'manage_book_posts_columns', 'set_custom_edit_book_columns' ); function set_custom_edit_book_columns($columns) { unset( $columns['author'] ); $columns['book_author'] = __( 'Author', 'your_text_domain' ); $columns['publisher'] = __( 'Publisher', 'your_text_domain' ); return $columns; } // Add the data to the custom columns for the book post type: add_action( 'manage_book_posts_custom_column' , 'custom_book_column', 10, 2 ); function custom_book_column( $column, $post_id ) { switch ( $column ) { case 'book_author' : $terms = get_the_term_list( $post_id , 'book_author' , '' , ',' , '' ); if ( is_string( $terms ) ) echo $terms; else _e( 'Unable to get author(s)', 'your_text_domain' ); break; case 'publisher' : echo get_post_meta( $post_id , 'publisher' , true ); break; } } 

Скопировано из существующих ан.

Вот полный код для этого:

 add_filter('manage_edit-video_columns', 'my_columns'); function my_columns($columns) { $columns['eventDate'] = 'Event Date'; return $columns; } add_action('manage_posts_custom_column', 'my_show_columns'); function my_show_columns($name) { global $post; switch ($name) { case 'eventDate': $eventDate = get_post_meta($post->ID, 'eventDate', true); echo $eventDate; } } add_filter( 'manage_edit-video_sortable_columns', 'my_sortable_date_column' ); function my_sortable_date_column( $columns ) { $columns['eventDate'] = 'Event Date'; return $columns; } 

благодаря

Хорошо, я нашел ответ сам. Чтобы помочь людям, которые будут читать это в будущем, это то, что я сделал:

1) Это объясняет, как добавить столбец: http://www.deluxeblogtips.com/add-custom-column/

2) Это объясняет, как добавить сортируемый столбец: https://wordpress.org/support/topic/admin-column-sorting/