I’m trying to set a post’s featured image based on custom fields. There are different types of posts and therefore the featured image should be set depending on which custom fields have been filled out.
Here is what I currently have (edited):
//Set post thumbnail based on various conditions
if (get_post_meta($post_id, 'featured_image', true)) {
$attachment_id = get_post_meta($post_id, 'featured_image', true);
} elseif (get_post_meta($post_id, 'upload_single_image', true)) {
$attachment_id = get_post_meta($post_id, 'upload_single_image', true);
} elseif (get_post_meta($post_id, 'create_gallery', false)) {
$gallery = get_post_meta($post_id, 'create_gallery', false);//get the full gallery
$attachment_id = $gallery[0]['upload_image']; //Get image from first row
}
The first two conditions are working, but the third condition (create gallery) isn’t. I thought that getting the first row of the db table and then calling the name of the custom meta data would do it, but it’s not working.
Anyone see what I might be doing wrong?
You have to set the
$single
paramter ofget_post_meta
to false (or don’t set it) to get an array.Here is a sped-up version:
Note: I did not test this.
// EDIT
Here is the code with the ACF function:
Got it to work by using ACF’s custom functions instead of wp’s meta functions.
Final working result: