Добавление Advanced Custom Field в колонки для постов WordPress

Небольшая заметка о том, как добавить созданные AFC плагином поля на страницу списка записей кастомного типа.

Advanced Custom Field (AFC) это удобный такой плагин для добавления кастомных полей различных типов записей в WordPress. Недавно потребовалось добавить поля, созданные данным плагином на страницу списка записей кастомного типа.

Предположим, что у нас есть тип «Offers» в котором мы храним заявки с какой то формы на нашем сайте, мы создали в ACF два поля email и telefon, и хотим добавить их на страницу списка записей, чтобы выглядело подобным образом:

Для этого нам потребуются следующие хуки:

  • manage_{$screen->id}_columns (wp-admin/includes/class-wp-list-table.php) – Отвечает за управление колонок на указанном экране (у нас edit-post). Передает массив с данными колонок, который мы можем изменить, добавив свою колонку (views) или удалить существующую через unset(). Название нашего фильтра будет: manage_offers_posts_columns.
  • manage_{$post->post_type}_posts_custom_column (wp-admin/includes/class-wp-posts-list-table.php) – Отвечает за заполнение данных колонки на странице постов. В нашем случае: manage_offers_posts_custom_column. Передает название колонки и ID поста.

Итак, создаем колонки. Для этого нужно вставить следующий код в functions.php :

/*
 * Add columns to Offers post list
 */
 function add_acf_columns ( $columns ) {
   return array_merge ( $columns, array ( 
   'email' => __ ( 'Email' ),
   'telefon' => __ ( 'Telefon' ) 
 ) );
 }
 add_filter ( 'manage_offers_posts_columns', 'add_acf_columns' );

А теперь, получаем значения в созданные нами колонки:

/*
 * Add columns to Offers post list
 */
 function offers_custom_column ( $column, $post_id ) {
   switch ( $column ) {
     case 'email':
       echo get_post_meta ( $post_id, 'email', true );
       break;
     case 'telefon':
       echo get_post_meta ( $post_id, 'telefon', true );
       break;
   }
 }
 add_action ( 'manage_offers_posts_custom_column', 'offers_custom_column', 10, 2 );

Вот и все, наши колонки на месте.

Данный материал был скопирован, с закрытого сайта yuriysmirnov.ru, и сохранен для себя. На авторство не претендую.

Вам также может понравиться

About the Author: Vladimir Kusakin

Hi. I am web developer. For the past 9 years, I've been developing applications for the web using mostly PHP and Python. About me

2 комментария

Добавить комментарий для Альбина Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *