Home › Forums › Bug Reports › Bug ACF 5.2.0 – Custom Fields stop rendering
After updating from 5.1.8 to 5.2.0, my custom fields stopped rendering.
Did you change the way 5.2.0 sets/gets the field data? Because get_fields() didn’t return anything.
To temporarily fix this issue, I reverted ACF back to 5.1.8.
Also – is this the kind of thing you would prefer in the Help Desk? or is this still a Bug Report issue?
Thanks,
Jesse
Hi @jgraup
There is a known issue where field groups are not appearing on the post edit screen. Is this what you are experiencing?
I have just released 5.2.1 to fix this.
No changes have been made to get_fields, can you update and test the issue and report back with more detail regarding this?
Thanks
E
Do you have a link to 5.2.1? My update in WP is only showing 5.2.0.
Ignore that, I just used my original download link and I see 5.2.1. I’ll report back soon.
Same problem. Looks like it’s specific to Post Object fields. While they are set in the edit screen, get_fields/get_field is returning null values.
Hi @jgraup
perhaps this is a different issue to what I thought. Can you elaborate more on the issue? Perhaps include some code which is not working and also explain where you are using the code.
Thanks
E
For example, I have a custom post type that displays a video. That video is also a custom post type with custom fields. In order to associate the video with the post, I have a field called ‘video’ that is a Post Object. That way, I can just pick the video in a list to display on that post.
When I upgraded the plugin, the videos just stops showing up. When I revert the plugin, they work again. Actually, anything using a Post Object field – which there are quite a bit (Sliders, featured items…).
With 5.1.8 this will return a Post Object:
$post = get_post(60);
echo $post->post_title;
$fields = get_fields(60);
$video_post_object = $fields['video'];
$field = get_field('video', 60);
print_r($video_post_object); // WP_Post Object ( [ID] => 926 ... )
print_r($field);
In 5.2.X the video field is blank/null/whatever.
Field Name: video
Field Type: Post Object
Required: No
Filter by Post Type: Video
Filter by Taxonomy: –
Allow Null? No
Select Multiple? No
Return Format: Post Object
Conditional Logic: No
Video is one example, but all Post Objects return null with get_field/get_fields.
I should also note, the field groups are currently being setup in the admin section under the Custom Fields tab – so ACF is driving all of this.
post_object.php line 170
5.2.1:
$groups = acf_get_grouped_posts( $args );
5.1.8:
$groups = acf_get_posts( $args );
5.2.1:
get_posts( $value ) is removed
5.1.8:
render_field()/format_value() uses $this->get_posts
5.2.1:
render_field()/format_value() uses acf_get_posts
api-helpers.php
Not sure if it makes a diff, but it looks like in your 5.2.1|acf_get_posts() you loop the product of $posts=get_posts, while in 5.1.8|$this->get_posts() you loop the $value and don’t deal with the product of get_posts.
Hi @jgraup
Sorry, but I am finding it dificult to understand the issue.
Can you clearly explain what CTP and Fields you have and how they are connected?
You say that $video_post_object
is blank? But you also show an array of objects as your debug result…
Thanks
E
Sorry, I realize this may be confusing.
Data is displayed on the front-end until I replace the plugin with 5.2.1.
At that time my Post Object fields only output null.
Consider any debug info you see coming from 5.1.8.
Hi @jgraup
Can you provide me with login details and the ability to modify theme / plugin files?
I’ll happily do some debugging as I can’t confirm this issue locally.
Sorry Elliot, and thank-you for your support, but I’d rather not cross the whole NDA jazz just yet.
If I’m the only one experiencing the problem then I’ll just hold off upgrading.
When I do, I’ll try to do some more debugging to see what is getting saved and how it’s getting pulled out. Clearly something has changed in your api w/acf_get_grouped_posts & acf_get_posts in regards to the PostObject field.
I’ll keep you posted if anything changes.
Hi @jgraup
Perhaps your theme / plugin contains some pre_get_posts filters which are modifying ACF’s get_posts function?
There has been a minor change to the acf_get_posts function in that it does not use get_post anymore, instead it only uses get_posts.
This could explain how a filter may be altering the query args and preventing the correct data from being returned.
I think that sounds very likely. I’ll explore that idea first and let you know if I find anything.
I removed any reference to pre_get_posts the best I could. I’ve made my theme able to drop the multilingual plugin I have activated for testing and I believe I found the issue.
ACF 5.2.X is not compatible with PolyLang Version 1.7.2.
Check out polylang/frontend/frontend-auto-translate.php; PLL_Frontend_Auto_Translate->pre_get_posts($query);
https://wordpress.org/plugins/polylang/
[LONGSHOT…] Here is the file that may be causing the problem. Do you see any quick fixes at first glance?
https://plugins.trac.wordpress.org/browser/polylang/trunk/frontend/frontend-auto-translate.php
Hi @jgraup
Yes, the function contains a loop which would run when the posts__in arg is supplied (this is used by ACF):
// array of post ids
137 // post_parent__in & post_parent__not_in since WP 3.6
138 foreach (array('post__in', 'post__not_in', 'post_parent__in', 'post_parent__not_in') as $key) {
139 $arr = array();
140 if (!empty($qv[$key])) {
141 // post__in used by the 2 functions below
142 // useless to filter them as output is already in the right language and would result in performance loss
143 foreach (debug_backtrace() as $trace)
144 if (in_array($trace['function'], array('wp_nav_menu', 'gallery_shortcode')))
145 return;
146
147 foreach ($qv[$key] as $p)
148 $arr[] = ($tr = pll_get_post($p)) ? $tr : $p;
149
150 $qv[$key] = $arr;
151 }
152 }
I’m not sure what the code does exactly, but it looks to modify the id’s.
I would advise that you debug this function by printing out the $qv
varible before and after this loop. This will show what has changed:
Thanks
E
The topic ‘Bug ACF 5.2.0 – Custom Fields stop rendering’ is closed to new replies.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Privacy Policy. If you continue to use this site, you consent to our use of cookies.