How do I set the first gallery image from a custom post type gallery field as the featured image?
I found another post similar to this but it is not for a custom post type. This is the code I’m assuming only for a normal post:
function set_featured_image_from_gallery() {
global $post;
$post_id = $post->ID;
$has_thumbnail = get_the_post_thumbnail($post_id);
if ( !$has_thumbnail ) {
$images = get_field('model_gallery', $post_id, false);
$image_id = $images[0];
if ( $image_id ) {
set_post_thumbnail( $post_id, $image_id );
}
}
}
add_action( 'save_post_property', 'set_featured_image_from_gallery' );
I have a custom post type named “models” that has a gallery field named “models_gallery”
I want to automatically set the first image from the gallery field to also be the featured image for the post.
That will work for a custom post type. It’s based on the post ID and the field name.
For some reason the code did not work. I did find the following code that did work.
add_action('acf/save_post', 'flex_FeaturedImageSetByACF', 50);
function flex_FeaturedImageSetByACF() {
$current_screen = get_current_screen(); // Current admin screen needed to identify the current cpt
$current_cpt_name = 'models'; // Current cpt name
$current_cpt_support = 'thumbnail'; // We want to check if the CPT supports this feature
global $post;
$post_id = ( $post->ID ); // Current post ID
$post_gallery_field = get_field('model_gallery', $post_id ); // ACF field
if ( !empty( $post_id ) ) {
if ( isset( $post_gallery_field['0'] ) ) {
$post_image_id = $post_gallery_field['0']['id']; // ACF image filed ID
$post_image_url = $post_gallery_field['0']['url']; // ACF image filed URL
// If current cpt supports thumbnails/featured images
if ( post_type_supports( $current_cpt_name, $current_cpt_support ) ) {
if ( ( $post_image_url ) AND ( ( $post_image_url ) != ( get_the_post_thumbnail() ) ) ) {
update_post_meta($post_id, '_thumbnail_id', $post_image_id);
}
}
} else {
update_post_meta( $post_id, '_thumbnail_id', 0 );
}
}
}
This looks amazing. Any thoughts on how this could be utilized as a mu-plugin?
Thanks for any help.
The topic ‘Use first image from gallery of custom post type to set featured image’ 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.