“You have to explicitly pass post ID as the 2nd argument.” – Milo
In the Advanced Custom Fields plugin file, plugins/advanced-custom-fields/core/api.php
, get_fields
has a default $post_id
of false, and calls on get_field_objects
, which seems to run specific calls to $wpdb->get_col($wpdb->prepare
, depending on what $post_id
contains (is_numeric?
, strpos('user_')
), so I guess depending on the environment of the loop you’re calling it from it will return different results, unless $post->ID
is specified.
So as specified by @Milo above:
get_field('produce_image', $post->ID)
Will get us the image object.
I think get_the_title($post->ID)
is native WordPress and probably works similarly.
Running get_the_excerpt($post->ID)
returns a warning:
get_the_excerpt was called with an argument that is deprecated since version 2.3 with no alternative available.
, but just running get_the_excerpt()
is returning the post excerpt as desired.