Фільтри для перетворення значень, налаштування шляхів та розширення правил розташування.
fieldforge/local_json/save_path
Змініть каталог, де зберігаються локальні JSON файли.
php
/**
* @param string $path Default: get_stylesheet_directory() . '/fieldforge-json'
* @return string Absolute path.
*/
add_filter( 'fieldforge/local_json/save_path', function( $path ) {
return WP_CONTENT_DIR . '/fieldforge-json';
} );fieldforge/local_json/load_paths
Додайте додаткові каталоги для завантаження груп полів JSON.
php
/**
* @param string[] $paths Default: [child_theme/fieldforge-json, parent_theme/fieldforge-json]
* @return string[]
*/
add_filter( 'fieldforge/local_json/load_paths', function( $paths ) {
$paths[] = MY_PLUGIN_DIR . '/fieldforge-json';
return $paths;
} );fieldforge/load_value
Фільтруйте значення поля під час його завантаження з бази даних. Виконується перед форматуванням.
php
/**
* @param mixed $value The raw value from DB.
* @param string $field_name The field name.
* @param int $post_id The post ID.
* @param object $row The raw database row.
* @return mixed The filtered value.
*/
add_filter( 'fieldforge/load_value', function( $value, $field_name, $post_id, $row ) {
// Auto-decrypt sensitive fields
if ( $field_name === 'api_key' && $value ) {
return my_decrypt_function( $value );
}
// Provide a default for empty fields
if ( $field_name === 'accent_color' && empty( $value ) ) {
return '#3b82f6';
}
return $value;
}, 10, 4 );fieldforge/match_location_rule
Розширте правило відповідності місцезнаходження з користувацькими параметрами.
php
/**
* @param string $actual The resolved actual value.
* @param array $rule The rule definition.
* @param WP_Post $post The post being evaluated.
* @return string The actual value to compare.
*/
add_filter( 'fieldforge/match_location_rule', function( $actual, $rule, $post ) {
if ( $rule['param'] === 'post_author_role' ) {
$author = get_userdata( $post->post_author );
return $author ? $author->roles[0] : '';
}
return $actual;
}, 10, 3 );Швидка довідка по хукам
| Хук | Тип | Параметри | Коли |
|---|---|---|---|
fieldforge/field_group_saved | Дія | $group_id, $group | Після створення/оновлення групи |
fieldforge/field_group_deleted | Дія | $group_id | Перед видаленням групи |
fieldforge/value_updated | Дія | $post_id, $field_name | Після вставки/оновлення значення |
fieldforge/values_deleted | Дія | $post_id | Після видалення всіх значень |
fieldforge/local_json/save_path | Фільтр | $path | Під час збереження JSON-файлів |
fieldforge/local_json/load_paths | Фільтр | $paths | Під час завантаження JSON-файлів |
fieldforge/load_value | Фільтр | $value, $field_name, $post_id, $row | Під час завантаження значення |
fieldforge/match_location_rule | Фільтр | $actual, $rule, $post | Під час оцінки правил розташування |