Asignar la primera imagen de la galería como destacada masivamente

A menudo nos encontramos con la necesidad de asignar la primera imagen de la gallery de un post como destacada. Esto nos lo encontramos normalmente cuando migramos webs a WordPress.

Os dejo una función que funciona a la perfección. Es posible que necesitéis lanzarla más de una vez en función del total de posts que tengáis.

El post type ‘post’ puede cambiarse por los post types en los que necesitéis lanzar esta función.


function wpse87964_set_post_thumbnails(){

    // Query args
    $wpse87964query_args = array(
		'nopaging' => true,
		'post_type' => 'post',
                'meta_query' => array(
                array(
                    'key' => '_thumbnail_id',
                    'compare' => 'NOT EXISTS'
                )
        ) );

    // Run query
    $wpse87964query = new WP_Query( $wpse87964query_args );

    // Open query loop
    if ( $wpse87964query->have_posts() ) : while ( $wpse87964query->have_posts() ) : $wpse87964query->the_post();

        // Query post attachments
        $attachments = get_children( 'post_parent=' . get_the_ID() . '&post_type=attachment&post_mime_type=image&order=desc' );
        if( $attachments ) {
            $keys = array_reverse( $attachments );
            set_post_thumbnail( get_the_ID(), $keys[0]->ID );
        };

    // Close query loop
    endwhile; endif;
    wp_reset_postdata();

}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *