Hello,
I purchased PRO version yesterday.
I need to show fields divided into groups. Similar to this thread.
Used this code:
$groups = acf_get_field_groups(array('post_id' => get_the_ID()));
foreach( $groups as $group_key => $group ) {
$fields = acf_get_fields($group);
if($fields ) {
foreach( $fields as $field_name => $field ){
echo $field['value'] ;
}
}
}
Unfortunately, it doesn’t return any value. I’ve done var_dump in $fields foreach, and it is loading the right field, only problem is that “value” is always NULL.
I have tried to get the value directly – the_field( “text_field” ); – and it is working fine. Any ideas?
tnx
Hi @pero
I’m afraid acf_get_fields() will always return an empty value. Instead, please use the get_field() function to get the value like this:
$groups = acf_get_field_groups(array('post_id' => get_the_ID()));
foreach( $groups as $group_key => $group ) {
$fields = acf_get_fields($group);
if($fields ) {
foreach( $fields as $field_name => $field ){
echo get_field($field['name']);
}
}
}
Hope this helps!
Thank you, this solved my problem.
Hi there, I could not get this to work with my code. Can you help? How could I get the values?
<?php $fields = acf_get_fields('56');
?>
<?php if( $fields )
{
foreach( $fields as $field)
{
$value = get_field( $field['name'] );
if ($value) {
echo '<dl>';
echo '<dt>' . $field['label'] . '</dt>';
echo '<dd>' . $field['value'] . '</dd>';
echo '</dl>';
}
}
}
?>