acf/include_fields
Срабатывает во время инициализации ACF после загрузки встроенных типов полей и правил расположения. Предназначен для регистрации локальных групп и полей через PHP.
Это рекомендуемое место для вызова acf_add_local_field_group(), acf_add_local_field() и аналогичных функций регистрации полей.
Хук подходит, когда группы полей:
- хранятся в теме или плагине;
- должны переноситься между окружениями вместе с кодом;
- не должны редактироваться через интерфейс ACF;
- создаются динамически на основе PHP-конфигурации.
ACF использует этот хук в коде, генерируемом инструментом экспорта групп полей.
В отличие от события acf/init, этот хук предназначен именно для подключения полей. acf/init срабатывает позже, после регистрации локальных полей, типов записей и таксономий ACF.
Официальная документация: Register fields via PHP.
Использование
add_action( 'acf/include_fields', 'wp_kama_acf_include_fields_action' );
/**
* Function for `acf/include_fields` action-hook.
*
* @param int $ACF_FIELD_API_VERSION ACF_FIELD_API_VERSION The field API version.
*
* @return void
*/
function wp_kama_acf_include_fields_action( $ACF_FIELD_API_VERSION ){
// action...
}
- $field_api_version(int)
- Версия API полей ACF. В актуальных версиях ACF передаётся значение константы
ACF_FIELD_API_VERSION.
Примеры
#1 Регистрация группы полей
Добавим текстовое поле для обычных записей.
add_action( 'acf/include_fields', 'wpkama_register_post_fields' );
function wpkama_register_post_fields() {
acf_add_local_field_group(
[
'key' => 'group_post_details',
'title' => 'Данные записи',
'fields' => [
[
'key' => 'field_post_subtitle',
'label' => 'Подзаголовок',
'name' => 'post_subtitle',
'type' => 'text',
],
],
'location' => [
[
[
'param' => 'post_type',
'operator' => '==',
'value' => 'post',
],
],
],
]
);
}
#2 Получение версии API полей
Аргумент хука можно использовать, если код регистрации зависит от версии API ACF.
add_action( 'acf/include_fields', 'wpkama_register_fields', 10, 1 );
function wpkama_register_fields( $field_api_version ) {
if ( $field_api_version < 5 ) {
return;
}
acf_add_local_field_group(
[
'key' => 'group_page_settings',
'title' => 'Настройки страницы',
'fields' => [],
'location' => [
[
[
'param' => 'post_type',
'operator' => '==',
'value' => 'page',
],
],
],
]
);
}Список изменений
| С версии 5.0.0 | Введена. |
Где вызывается хук
do_action( 'acf/include_fields', ACF_FIELD_API_VERSION );
Где используется хук в Advanced Custom Fields PRO
echo "add_action( 'acf/include_fields', function() {\r\n";
add_action( 'acf/include_fields', '_acf_do_prepare_local_fields', 0, 1 );
add_action( 'acf/include_fields', array( $this, 'include_fields' ) );
add_action( 'acf/include_fields', array( $this, 'include_options_pages' ) );