Одна из лучших вещей в WordPress — это то, что вы можете настроить практически все. В админке вы можете увидеть список всех постов, которые вы добавили в WordPress. В этой таблице показана основная информация для каждого сообщения, заголовок, автор, категория, теги, комментарии и дата публикации сообщения.
WordPress имеет ряд различных фильтров и действий, которые позволяют вам редактировать выходные данные столбца, чтобы вы могли добавлять свои собственные данные в этот список. Например, если у вас есть собственные метаданные публикации, которые представляют собой полезную информацию, которую вы хотите отобразить в списке публикаций, вы можете добавить новые настраиваемые столбцы в список.
В этой статье вы узнаете, как добавлять новые столбцы в список записей, как добавлять данные в столбец и как можно сортировать этот столбец.
Добавить новые столбцы
Сначала мы начнем с добавления нового столбца в список, для этого мы используем фильтр WordPress manage_edit-post_columns . Это позволит вам редактировать выходные данные столбцов, добавляя новые значения в массив столбцов. Функция обратного вызова в этом фильтре передаст один параметр, который является текущими столбцами в списке, а возвращением этой функции будут новые столбцы в таблице записей. Это означает, что мы можем добавить дополнительные значения в массив, чтобы добавить дополнительные столбцы в таблицу.
Следующий код добавит новый столбец в таблицу сразу после столбца заголовка.
// Add a column to the edit post list add_filter( 'manage_edit-post_columns', 'add_new_columns'); /** * Add new columns to the post table * * @param Array $columns - Current columns on the list post */ function add_new_columns( $columns ) { $column_meta = array( 'meta' => 'Custom Column' ); $columns = array_slice( $columns, 0, 2, true ) + $column_meta + array_slice( $columns, 2, NULL, true ); return $columns; }
Добавить столбцы к пользовательским типам записей
Если у вас есть пользовательские типы записей на вашем сайте и вы хотите добавить дополнительные столбцы в этот список, WordPress поставляется со встроенными фильтрами, которые можно применять для добавления новых столбцов в эту таблицу.
add_filter( 'manage_${post_type}_posts_columns', 'add_new_columns');
Если у вас есть собственный тип публикации портфолио, вы можете использовать следующий код для добавления столбца в список типов записей портфолио.
function add_portfolio_columns($columns) { return array_merge($columns, array('client' => __('Client'), 'project_date' =>__( 'Project Date'))); } add_filter('manage_portfolio_posts_columns' , 'add_portfolio_columns');
Добавить данные в пользовательские столбцы
После того, как вы создали новые столбцы для списка сообщений, теперь вы можете добавлять данные в новые столбцы с помощью действия WordPress manage_posts_custom_column . Добавление действия к этому будет вызываться в каждом столбце, из этого вызова мы можем получить данные для публикации, отображающие ее в списке записей.
Следующий код проверит, в каком столбце мы находимся, получит метаданные пользовательского поста для текущего поста и отобразит его в столбце.
// Add action to the manage post column to display the data add_action( 'manage_posts_custom_column' , 'custom_columns' ); /** * Display data in new columns * * @param $column Current column * * @return Data for the column */ function custom_columns( $column ) { global $post; switch ( $column ) { case 'meta': $metaData = get_post_meta( $post->ID, 'twitter_url', true ); echo $metaData; break; } }
Добавить данные в столбцы пользовательских типов записей
Помимо возможности добавления фильтра к пользовательским типам записей путем добавления новых столбцов, WordPress имеет встроенное действие, которое можно использовать для добавления данных в пользовательские столбцы.
В приведенном выше примере мы добавляем новый столбец только для типов записей портфолио, чтобы добавить два новых столбца в список, используя код ниже, вы можете добавить данные в эти новые столбцы.
function custom_portfolio_column( $column, $post_id ) { switch ( $column ) { case 'project_date': echo get_post_meta( $post_id , 'project_date' , true ); break; case 'client': echo get_post_meta( $post_id , 'client' , true ); break; } } add_action( 'manage_portfolio_posts_custom_column' , 'custom_portfolio_column' );
Сделать столбцы сортируемыми
По умолчанию новые настраиваемые столбцы не сортируются, что затрудняет поиск нужных вам данных. Для сортировки пользовательских столбцов в WordPress есть еще один фильтр manage_edit-post_sortable_columns, который можно использовать для назначения столбцов, которые можно сортировать.
Когда это действие будет выполнено, функция передаст параметр всех столбцов, которые в настоящее время сортируются, добавление новых пользовательских столбцов в этот список теперь сделает эти столбцы сортируемыми. Значение, которое вы дадите, будет использовано в URL, чтобы WordPress понимал, по какому столбцу упорядочить.
Следующее, чтобы позволить вам сортировать по мета пользовательского столбца.
// Register the column as sortable function register_sortable_columns( $columns ) { $columns['meta'] = 'Custom Column'; return $columns; } add_filter( 'manage_edit-post_sortable_columns', 'register_sortable_columns' );
Это все, что вам нужно, чтобы изменить способ публикации сообщений в вашей административной области. Какую полезную информацию вы хотели бы видеть в списке сообщений?