Afficher des champs ACF en fonction du template de la page parent

Posté par PUShAUNE le

0 commentaires :(

Afficher des champs ACF en fonction du template de la page parent

Vous avez besoin d’afficher des champs ACF en fonction du template de la page parent ? Voilà un snippet qui vous sera utile.

Ce bout de code vous permet de créer une nouvelle règle d’affichage à votre groupe de champs :

Nouvelle règle d'affichage pour un groupe de champs ACF.

Concrètement, vous allez pouvoir choisir d’afficher votre groupe de champs en fonction du template de la page parent. Ça peut vous être utile pour afficher une sidebarre, un CTA ou du contenu additionnel pour les pages enfants.

Pour faire apparaître cette nouvelle option, vous devez le coller dans votre fichier function.php :

// Ajouter tempate parent aux choix acf
add_filter('acf/location/rule_types', 'acf_location_rules_types');
function acf_location_rules_types( $choices ) {
$choices['Parent']['parent_template'] = 'Parent Template';
return $choices;

}

add_filter('acf/location/rule_values/parent_template', 'acf_location_rules_values_parent_template');
function acf_location_rules_values_parent_template( $choices ) {
$templates = get_page_templates();
if ( $templates ) {
foreach ( $templates as $template_name => $template_filename ) {
$choices[ $template_filename ] = $template_name;
}
}
return $choices;
}

add_filter('acf/location/rule_match/parent_template', 'acf_location_rules_match_parent_template', 10, 3);
function acf_location_rules_match_parent_template( $match, $rule, $options ) {
$selected_template = $rule['value'];
global $post;
$template = get_page_template_slug( $post->post_parent );
if( $rule['operator'] == "==" ) {
$match = ( $selected_template == $template );
} elseif($rule['operator'] == "!=") {
$match = ( $selected_template != $template );
}
return $match;
}

See ya’ space integrateur

Nicolas Aune est Directeur Artistique basé à Marseille. Fondateur d’Épicentre Production et créateur de la chaîne YouTube PUShAUNE, il évolue depuis plus de 15 ans dans les domaines de la publicité, de la mode et du corporate. À travers ses productions photo et vidéo, il partage son expérience du terrain au travers de tests matériel, de tutoriels et de retours d’expérience dédiés à la photographie, à la vidéo et le développement WordPress.

Un projet ? Contactez-moi !

Tu kiffes ? Alors partage avec tes potes !

Sois pas timide, lâche tes com’ !

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.