26. Hooks y Filtros -- Filtros | Field Forge - Campos personalizados, diseñados para la velocidad
Descargar Iniciar sesión

26. Hooks y Filtros — Filtros

Filtros para transformar valores, personalizar rutas y extender reglas de ubicación.

fieldforge/local_json/save_path

Cambia el directorio donde se guardan los archivos JSON locales.

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

Añade directorios adicionales para cargar grupos de campos 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

Filtra un valor de campo a medida que se carga desde la base de datos. Se ejecuta antes de formatear.

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

Extiende la coincidencia de reglas de ubicación con parámetros personalizados.

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 );

Referencia Rápida de Hooks

HookTipoParámetrosCuándo
fieldforge/field_group_savedAcción$group_id, $groupDespués de crear/actualizar grupo
fieldforge/field_group_deletedAcción$group_idAntes de eliminar grupo
fieldforge/value_updatedAcción$post_id, $field_nameDespués de insertar/actualizar valor
fieldforge/values_deletedAcción$post_idDespués de eliminar todos los valores
fieldforge/local_json/save_pathFiltro$pathAl guardar archivos JSON
fieldforge/local_json/load_pathsFiltro$pathsAl cargar archivos JSON
fieldforge/load_valueFiltro$value, $field_name, $post_id, $rowAl cargar un valor
fieldforge/match_location_ruleFiltro$actual, $rule, $postAl evaluar reglas de ubicación

Asistente de IA de Forge En línea

¡Hola! Soy el asistente de IA de Field Forge. Pregúntame lo que quieras sobre el plugin — configuración, funciones, resolución de problemas o desarrollo.

Ahora mismo
Con la tecnología de Forge AI · Explorar documentación