26. Hooks et Filtres -- Filtres | Field Forge - Champs personnalisés, conçus pour la vitesse
Télécharger Se connecter

26. Hooks et Filtres — Filtres

Filtres pour transformer des valeurs, personnaliser des chemins et étendre des règles de localisation.

fieldforge/local_json/save_path

Changer le répertoire où les fichiers JSON locaux sont sauvegardés.

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

Ajouter des répertoires supplémentaires pour charger des groupes de champs 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

Filtrer une valeur de champ au moment où elle est chargée depuis la base de données. S’exécute avant le formatage.

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

Étendre la correspondance des règles de localisation avec des paramètres personnalisés.

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

Référence Rapide des Hooks

HookTypeParamètresQuand
fieldforge/field_group_savedAction$group_id, $groupAprès la création/mise à jour du groupe
fieldforge/field_group_deletedAction$group_idAvant la suppression du groupe
fieldforge/value_updatedAction$post_id, $field_nameAprès l’insertion/mise à jour de la valeur
fieldforge/values_deletedAction$post_idAprès la suppression de toutes les valeurs
fieldforge/local_json/save_pathFiltre$pathLors de la sauvegarde des fichiers JSON
fieldforge/local_json/load_pathsFiltre$pathsLors du chargement des fichiers JSON
fieldforge/load_valueFiltre$value, $field_name, $post_id, $rowLors du chargement d’une valeur
fieldforge/match_location_ruleFiltre$actual, $rule, $postLors de l’évaluation des règles de localisation
Assistant IA Forge En ligne

Bonjour ! Je suis l'assistant IA Field Forge. Posez-moi n'importe quelle question sur le plugin — configuration, fonctionnalités, dépannage ou développement.

À l'instant
Propulsé par Forge IA · Parcourir la documentation