Фильтры для преобразования значений, настройки путей и расширения правил местоположения.
fieldforge/local_json/save_path
Изменить директорию, в которой сохраняются файлы Local 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 | При оценке правил местоположения |
—