Advanced Custom Field
Posté : 27 mai 2020, 03:31
bonjour
je suis en train de coder une fonction de type 'render' concernant ACF (Advanced Custom Field pour Wordpress).
si certain d'entre vous ont des idées pour l'améliorée je suis preneur.
notamment :
je suis en train de coder une fonction de type 'render' concernant ACF (Advanced Custom Field pour Wordpress).
si certain d'entre vous ont des idées pour l'améliorée je suis preneur.
notamment :
- - je cherche a insérer la possibilité d'afficher le label pour chaque champ via une option (surement via une condition sur chaque type de champ)
- je cherche a favoriser la clarté du HTML qui va être généré par cette fonction et a le structuré de telle sorte qu'il soit facilement customisable en CSS
- et enfin j’hésite a créer une classe pour mes objet groupe et une pour mes objets fields afin d’améliorer la clarté du code
function render_acf_fields_2()
{
//initialisation de la liste des groupes
$groups = acf_get_field_groups(array('post_id' => get_the_ID()));
$i = 0;
// var_dump($groups);
while ($i < count($groups)) {
//initialisation de la liste des champs du groupe
$array = acf_get_fields($groups[$i]['key']);
$j = 0;
// var_dump($array);
echo '<div class="' . $groups[$i]['key'] .' '.strtolower(str_replace(" ","-", $groups[$i]['title'])). '">';
echo 'i = ' . $i . '<br/>';
//traitement et affichage des champs
while ($j < count($array)) {
echo 'j = ' . $j . '<br/>';
//champs de type image
if($array[$j]['type']==='image'){
$thumbnail = get_field($array[$j]['key']);
$size = 'full';
if ( $thumbnail ){
echo wp_get_attachment_image( $thumbnail, $size );
}
}
//champs de tgype fichier
elseif($array[$j]['type']==='file'){
$file = get_field( $array[$j]['key'] );
if ( $file ){
echo '<a href="'. esc_url( $file['url'] ).'">'. esc_html( $file['filename'] ).'</a>';
}
}
//champs de type post_object !!! => ce type est particulier et je manque d'information a son sujet pour le moment
//le code source de la condition est commenter, je l'ai repris sur le site d'ACF et il ne fonctionne pas
elseif($array[$j]['type']==='post_object')
{
// $pub = get_field( $array[$j]['key'] );
// if ( $pub ){
// $post = $pub;
// setup_postdata( $post );
// var_dump('<a href="'.the_permalink().'">'. the_title().'</a>');
// wp_reset_postdata();
// }
}
else
{
the_field($array[$j]['key']);
}
$j++;
}
$i++;
echo '</div>';
}
}