Хуки
Когда ACF не активен, каждый хук wpff/… из списка, который есть и у ACF, срабатывает также как acf/…. См. Совместимость с ACF.
| Хук | Тип | Назначение |
|---|---|---|
wpff/init | action | Здесь регистрируют группы, страницы настроек и блоки. |
wpff/register_field_types | action | Свой тип поля — наследник FreeformFields\Fields\AbstractField: $registry->register( new My_Field() ). |
wpff/load_value, wpff/format_value, wpff/update_value | filter | ( $value, $post_id, $field ). Есть варианты /type=…, /name=… и /key=…. |
wpff/validate_value | filter | ( $valid, $value, $field, $post_id ). Верните строку с сообщением, чтобы отклонить значение. Есть варианты /type=, /name= и /key=. |
wpff/prepare_field | filter | ( $field ) перед выводом поля. Верните false, чтобы скрыть поле. |
wpff/pre_update_value | filter | Верните false, чтобы не сохранять значение. |
wpff/save_post | action | ( $post_id, $errors ) после сохранения формы. |
wpff/save_field_group, wpff/delete_field_group | action | После сохранения или удаления группы в админке. |
wpff/load_field_groups | filter | Все группы до нормализации. |
wpff/location/matchers | filter | Свои правила размещения: 'param' => fn( $rule, $screen ) => bool. |
wpff/settings/save_json, wpff/settings/load_json | filter | Папки Local JSON. |
wpff/settings/{name} | filter | Значение настройки. |
wpff/options_autoload | filter | Автозагрузка значений страниц настроек. |
wpff/capability | filter | Право на управление группами полей. По умолчанию manage_options. |
wpff/acf_compat | filter | Объявлять ли функции с именами ACF. |
wpff/fields/google_map/api_key | filter | Ключ Google Maps. Верните '', чтобы использовать OpenStreetMap. |
wpff/fields/google_map/tiles | filter | Сервер тайлов: [ 'url' => …, 'attribution' => … ]. |
wpff/fields/google_map/geocoder_url | filter | Геокодер, совместимый с Nominatim. |
wpff/updates/enabled | filter | Проверять ли обновления в релизах GitHub. По умолчанию true. |
wpff/updates/manifest_url | filter | Адрес манифеста обновлений. По умолчанию — update.json последнего релиза. |
Примеры
Отклонить значение:
php
add_filter( 'wpff/validate_value/name=isbn', function ( $valid, $value ) {
if ( $value && ! preg_match( '/^[0-9-]{10,17}$/', $value ) ) {
return 'Введите корректный ISBN.';
}
return $valid;
}, 10, 2 );Скрыть поле от всех, кроме администраторов:
php
add_filter( 'wpff/prepare_field/name=internal_note', function ( $field ) {
return current_user_can( 'manage_options' ) ? $field : false;
} );