Politique de gestion des cookies
Afin de toujours améliorer votre parcours de navigation sur notre site, nous utilisons des statistiques anonymes de navigation.Les snippets pour ACF.
Obtenir tous les paramètres de tous les champs ACF d’un contenu
PHP
<?php
$field = get_field_objects(123); // post_ID
/* retour :
array(
"my_field" => array(
'ID' => 0,
'key' => '',
'label' => '',
'name' => '',
'prefix' => '',
'type' => 'text',
'value' => null,
'menu_order' => 0,
'instructions' => '',
'required' => 0,
'id' => '',
'class' => '',
'conditional_logic' => 0,
'parent' => 0,
'wrapper' => array(
'width' => '',
'class' => '',
'id' => ''
)
),
...
);
*/
Obtenir le slug de la ligne courant dans un contenu flexible
PHP
<?php
if( have_rows('blocs') ) {
while( have_rows('blocs') ) {
the_row();
// Permet d'obtenir le slug du bloc courant
$layout = get_row_layout();
}
}
Obtenir la valeur d’un sous-champs
PHP
<?php
if( have_rows('parent_field') ):
while ( have_rows('parent_field') ) : the_row();
$sub_value = get_sub_field('sub_field');
endwhile;
endif;
Vérifier si un repeater à des lignes de données
PHP
<?php
if( have_rows('repeater') ):
while ( have_rows('repeater') ) : the_row();
// Il y a bien des lignes de données
endwhile;
else :
// Aucune ligne sur le repeater
endif;
Supprimer la valeur d‘un sous-champs
PHP
<?php
// Suppression de la valeur du champs ‘field_key' de la première ligne du repeater ‘repeater‘
delete_sub_field(array('repeater', 1, 'field_key'));
// Suppression de la valeur du champs ‘field_123456' de la première ligne du repeater ‘repeater‘ avec la clé de champs
delete_sub_field(array('repeater', 1, 'field_123456'));
$post_id = 1; // ID du post
$post_id = "user_2"; // ID de l'utilisateur = 2
$post_id = "category_3"; // ID du terme de taxonomie {taxonomy}_{term_id}
$post_id = "option"; // options page
$post_id = "options"; // same as above
delete_sub_field( array('repeater', 1, 'field_key'), $post_id );
Obtenir la valeur d’un sous-champs
PHP
<?php if( have_rows('todo') ): ?>
<ul>
<?php while ( have_rows('todo') ) : the_row(); ?>
<li><?php the_sub_field('item'); ?></li>
<?php endwhile; ?>
</ul>
<?php else : ?>
<p>No todos found.</p>
<?php endif; ?>
Supprimer la valeur d‘un champs
PHP
<?php
// Suppression depuis la clé du champs
delete_field('field_key');
// Suppression depuis l'ID du champs
delete_field('field_123456');
$post_id = 1; // ID du post
$post_id = "user_2"; // ID de l'utilisateur = 2
$post_id = "category_3"; // ID du terme de taxonomie {taxonomy}_{term_id}
$post_id = "option"; // options page
$post_id = "options"; // same as above
delete_field( 'field_key', $post_id );
Ajouter une nouvelle ligne de données à un sous-champ de répéteur ou de contenu flexible
PHP
<?php
$row = [
'name' => 'John Doe',
'age' => 30
];
// Ajouter une ligne de membres sur la première ligne du repeater staff
add_sub_row(array('staff', 1, 'members'), 1, $row);
// Mettre à jour la ligne 1 des membres de la première ligne du repeater staff en définissant un post_id
add_sub_row(array('staff', 1, 'members'), 1, $row, 123);
Ajouter une nouvelle ligne de données à un répéteur ou un contenu flexible
Documentation
https://www.advancedcustomfields.com/resources/add_row/
PHP
<?php
$row = [
'name' => 'John Doe',
'age' => 30
];
// Ajout d'une ligne sur le repeater ‘members‘
add_row('members', 1, $row);
// Ajout d'une ligne sur le repeater ‘members‘ en définissant un post_id
add_row('members', 1, $row, 123);
Obtenir un champs ACF depuis un shortcode
Texte
Ce shortcode affiche le champs ‘field_name‘ du post 123 : [acf field="field_name" post_id="123"]
Ce shortcode affiche le champs ‘field_name‘ de l‘utilisateur 123 : [acf field="field_name" post_id="user_123"]
Ce shortcode affiche le champs ‘field_name‘ du terme 123 de la taxonomie ‘category‘ : [acf field="field_name" post_id="category_123"]
Ce shortcode affiche le champs ‘field_name‘ d'une page d'options : [acf field="field_name" post_id="options"]
Créer un type de bloc personnalisé dans l‘éditeur Gutenberg
PHP
<?php
add_action('acf/init', function() {
// On vérifie si la fonction existe (car inexistante sur les anciennes versions d'ACF)
if( function_exists('acf_register_block_type') ) {
// Register a testimonial block.
acf_register_block_type(array(
'name' => 'testimonial',
'title' => __('Témoignage'),
'description' => __('Un bloc de témoignage personnalisé'),
'render_template' => 'template-parts/blocks/testimonial/testimonial.php',
'category' => 'formatting',
));
}
}
Vous permettra d’ajouter des champs ACF sur le nouveau bloc.
Ajouter une sous page d‘options
PHP
<?php
add_action('acf/init', function() {
// On vérifie si la fonction existe (donc si ACF est installé)
if( function_exists('acf_add_options_sub_page') ) {
// On ajoute la page parente
$parent = acf_add_options_page(array(
'page_title' => __('Options du site'),
'menu_title' => __('Options'),
'redirect' => false,
));
// On ajoute la sous page avec le slug de page parente
$child = acf_add_options_sub_page(array(
'page_title' => __('Réseaux sociaux'),
'menu_title' => __('Réseaux sociaux'),
'parent_slug' => $parent['menu_slug'],
));
}
});
Ajouter une page d‘options
PHP
<?php
add_action('acf/init', function() {
// On vérifie si la fonction existe (donc si ACF est installé)
if( function_exists('acf_add_options_page') ) {
// On ajoute la page d'options
$option_page = acf_add_options_page([
'page_title' => __('Options du site'),
'menu_title' => __('Options'),
'menu_slug' => 'options',
'capability' => 'manage_options',
'redirect' => false
]);
}
});
Mettre à jour une ligne de données pour une valeur de champ d‘un répéteur ou d‘un contenu flexible
PHP
<?php
$row = [
'name' => 'John Doe',
'age' => 30
];
// Mettre à jour la ligne 1 des membres de la première ligne du repeater staff
update_sub_row(array('staff', 1, 'members'), 1, $row);
// Mettre à jour la ligne 1 des membres de la première ligne du repeater staff en définissant un post_id
update_sub_row(array('staff', 1, 'members'), 1, $row, 123);
Mettre à jour la valeur d‘une ligne de données d‘un répéteur ou d‘un contenun flexible
PHP
<?php
$row = [
'name' => 'John Doe',
'age' => 30
];
// Mettre à jour la ligne 1 du repeater members
update_row('members', 1, $row);
// Mettre à jour la ligne 1 du repeater members en définissant un post_id
update_row('members', 1, $row, 123);
Mettre à jour la valeur d‘un sous-champs
PHP
<?php
// Depuis une loop
if( have_rows('repeater') ) {
while( have_rows('repeater') ) {
the_row();
update_sub_field('caption', 'new value');
}
}
// En une ligne, mettre à jour le champs caption de la première ligne du repeater
update_sub_field( array('repeater', 1, 'caption'), 'new value');
// En définissant le post_ID
update_sub_field( array('repeater', 1, 'caption'), 'new value', 123);
Mettre à jour la valeur d‘un champs ACF pour un terme de taxonomie
PHP
<?php
// À partir de l'id du terme de taxonomie
$pid = 'category_123'; // {taxonomy}_{term_id}
// À partir d'un objet de taxonomie
$pid = get_queried_object(); // objet WP_Term
// Mise à jour à partir de la clé du champs
update_field('phone', '06 01 01 01 01', $pid);
// Mise à jour à partir de la clé du champs
update_field('field_123456', '06 01 01 01 01', $pid); // fonctionne aussi avec 'option'
Mettre à jour la valeur d‘un champs ACF pour une page d’options
PHP
<?php
// Mise à jour à partir de la clé du champs
update_field('phone', '06 01 01 01 01', 'options'); // fonctionne aussi avec 'option'
// Mise à jour à partir de la clé du champs
update_field('field_123456', '06 01 01 01 01', 'options'); // fonctionne aussi avec 'option'
Mettre à jour la valeur d‘un champs ACF pour un post (article, page…)
PHP
<?php
// Mise à jour à partir de la clé du champs
update_field('phone', '06 01 01 01 01'); // dans une loop
update_field('phone', '06 01 01 01 01', 123); // en définissant un post_id
// Mise à jour à partir de la clé du champs
update_field('field_123456', '06 01 01 01 01'); // dans une loop
update_field('field_123456', '06 01 01 01 01', 123); // en définissant un post_id
Mettre à jour la valeur d‘un champs ACF pour un utilisateur
PHP
<?php
// Mise à jour à partir de la clé du champs
update_field('phone', '06 01 01 01 01', 'user_1'); // user_{userID}
// Mise à jour à partir de la clé du champs
update_field('field_123456', '06 01 01 01 01', 'user_1'); // user_{userID}
Supprimer une ligne de données d‘une valeur de sous-champ de répéteur ou d‘un contenu flexible
PHP
<?php
// On loop sur les membres
if( have_rows('members') ) {
while( have_rows('members') ) {
the_row();
// On supprime le premier champs des images du membre courant.
delete_sub_row('images', 1);
}
}
// Autre exemple, on supprime la deuxième image du membre 1
delete_sub_row( array('members', 1, 'images'), 2 );
Obtenir l’objet de paramètre d’un champs ACF
PHP
<?php
$field = get_field_object('field_key'); // return array
/*
array(
'ID' => 0,
'key' => '',
'label' => '',
'name' => '',
'prefix' => '',
'type' => 'text',
'value' => null,
'menu_order' => 0,
'instructions' => '',
'required' => 0,
'id' => '',
'class' => '',
'conditional_logic' => 0,
'parent' => 0,
'wrapper' => array(
'width' => '',
'class' => '',
'id' => ''
)
);
*/
Obtenir tous les champs ACF depuis un post (articles, pages…)
PHP
<?php
// Dans une loop
$field = get_fields('field_key'); // array
// Résultats identiques
echo $field;
the_field('field_key'); // ne nécessite pas d'echo
// récupération d'un champs depuis le post_ID
$pid = 123;
$field = get_fields('field_key', $pid); // array
Obtenir tous les champs ACF depuis un terme de taxonomie
PHP
<?php
// récupération de tous champs depuis un terme de taxonomie
$pid = 'category_123'; // {taxonomy}_{term_id}
$pid = get_queried_object(); // objet WP_Term
$field = get_fields('field_key', $pid); // array
Obtenir tous les champs ACF depuis un utilisateur
PHP
<?php
// récupération de tous les champs depuis un utilisateur
$pid = 'user_123'; // user_{user_id}
$field = get_fields('field_key', $pid); // array
Obtenir tous les champs ACF depuis une page d’options
PHP
<?php
// récupération de tous les champs depuis une page d'options
$field = get_fields('field_key', 'options'); // fonctionne aussi avec 'option' (array)
Obtenir un champs ACF depuis une page d’options
PHP
<?php
// récupération d'un champs depuis une page d'options
$field = get_field('field_key', 'options'); // fonctionne aussi avec 'option'
// Résultats identiques
echo $field;
the_field('field_key', 'options'); // ne nécessite pas d'echo
Obtenir un champs ACF depuis un utilisateur
PHP
<?php
// récupération d'un champs depuis un utilisateur
$pid = 'user_123'; // user_{user_id}
$field = get_field('field_key', $pid);
// Résultats identiques
echo $field;
the_field('field_key', $pid); // ne nécessite pas d'echo
Obtenir un champs ACF depuis un terme de taxonomie
PHP
<?php
// récupération d'un champs depuis un terme de taxonomie
$pid = 'category_123'; // {taxonomy}_{term_id}
$pid = get_queried_object(); // objet WP_Term
$field = get_field('field_key', $pid);
// Résultats identiques
echo $field;
the_field('field_key', $pid); // ne nécessite pas d'echo
Obtenir un champs ACF depuis un post (articles, pages…)
PHP
<?php
// Dans une loop
$field = get_field('field_key');
// Résultats identiques
echo $field;
the_field('field_key'); // ne nécessite pas d'echo
// récupération d'un champs depuis le post_ID
$pid = 123;
$field = get_field('field_key', $pid);
// Résultats identiques
echo $field;
the_field('field_key', $pid); // ne nécessite pas d'echo