WordPress – impostare e rimuovere automaticamente immagini in evidenza

Creare e cancellare file da WP

Su WordPress le cosiddette “immagini in evidenza” (in inglese featured images) sono delle immagini che vengono incluse nell’articolo o nella pagina ed hanno un utilizzo particolare: vengono visualizzate come anteprima per esempio nelle liste di articoli o in home page, e sono inserite dall’autore per la loro rappresentatività rispetto all’argomento trattato. Ogni autore inoltre le utilizza a seconda delle sue esigenze.

Temi diversi le trattano in modo diverso, per esempio impostandone una automaticamente se l’autore non ne seleziona alcuna; altri temi non ne prevedono l’utilizzo.

Le immagini in evidenza vengono impostate manualmente di volta in volta; se invece si desidera impostarne una automaticamente si può ricorrere a dei plugin appositi, oppure si può intervenire sui file del tema. Ecco un codice che imposta automaticamente l’immagine in evidenza, riutilizzandone una di quelle aggiunta nell’articolo o pagina. Il codice va inserito nel file functions.php.

define("AUTOSET_FEATURED_IMAGE_PLUGIN_URL", plugin_dir_url( __FILE__ ));
define("AUTOSET_FEATURED_IMAGE_FULL_DIR", plugin_dir_path( __FILE__ ));
define("AUTOSET_FEATURED_IMAGE_TEXT_DOMAIN", "autoset-featured-image");

function autoset_featured() {
    global $post;
    $already_has_thumb = has_post_thumbnail($post->ID);
        if (!$already_has_thumb)  {
        $attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );
            if ($attached_image) {
                foreach ($attached_image as $attachment_id => $attachment) {
                    set_post_thumbnail($post->ID, $attachment_id);
                }
            }
        }
}
add_action('the_post', 'autoset_featured');
add_action('save_post', 'autoset_featured');
add_action('draft_to_publish', 'autoset_featured');
add_action('new_to_publish', 'autoset_featured');
add_action('pending_to_publish', 'autoset_featured');
add_action('future_to_publish', 'autoset_featured');

È disponibile anche un codice opposto, che rimuove tutte le immagini in evidenza precedentemente impostate.