Impostare come immagine in evidenza la prima immagine dell’articolo

Direttamente da WordPress Snippets, una soluzione per impostare come immagine in evidenza la prima immagine  caricata all’interno dell’articolo. Può essere utile se si passa da un tema che non supporta le immagini in evidenza ad uno che le supporta per evitare di doverle impostare tutte.

Puo sembrare un duplicato di questo articolo, ma in realtà il funzionamento è diverso: l’immagine viene impostata come in evidenza proprio a livello di database, non semplicemente durante la visualizzazione del blog. Inoltre non si deve mettere mano al template. Ecco il codice:

function afi_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', 'afi_autoset_featured');
add_action('save_post', 'afi_autoset_featured');
add_action('draft_to_publish', 'afi_autoset_featured');
add_action('new_to_publish', 'afi_autoset_featured');
add_action('pending_to_publish', 'afi_autoset_featured');
add_action('future_to_publish', 'afi_autoset_featured');

Il codice può essere inserito nel file functions.php del proprio tema, oppure inserito in un plugin dedicato. Questa seconda soluzione è preferibile perché rende la funzione indipendente dal tema in uso. Chi vuole provarlo, può scaricare il plugin direttamente qui sotto.

[wpdm_file id=7]

Precedente Sintassi colorata negli editor di temi e plugin con Advanced Code Editor Successivo WordPress 3.3.2: Aggiornamento di sicurezza
  • ciao, ho installato questo plugin e funziona bene ma non con le immagini che non sono caricate nei media ma solamente linkate. è possibile ovviare a questo inconveniente?

    • No, purtroppo non è possibile, perché wordpress non è in grado di utilizzare come immagine in evidenza un’immagine esterna. E’ necessario che sia caricata tramite la gestione media.

      • Comunque è ottimo perchè ho cambiato tema e questo plugin mi ha rigenerato tutte le immagini in evidenza che non comparivano più nella home del sito accanto ad ogni articolo, mentre per il problema del’ìl’immagine in evidenza ho risolto con il plugin zemanta, il quale consente di impostare sia l’immagine dell’articolo che l’immagine in evidenza tramite link , senza importare il file .Non so se questa soluzione può causare problemi diversi, che ne pensi?

        • Non conosco il plugin in questione, anche se mi sembra molto strano che WP riesca a generare le miniature da un’immagine esterna. Magari usa un metodo diverso e non genera le miniature. Cmq sono con l’uso quotidiano si capisce se ci sono problemi, Tieni presente che difficilmente un plugin molto scaricato e con una buona valutazione come quello crea grossi problemi.

  • kkri

    Ciao. Volevo sapere se praticamente è come se creasse un link alla prima immagine che trova nel post oppure se genera una nuova immagine da usare come immagine in evidenza. Sostanzialmente vorrei sapere se appesantisce il server di nuove immagini (ne ho 2000) e rallenta la visualizzazione delle pagine. Grazie, ciao

  • Francesco Colasuonno

    Ciao. É possibile che questa funzione abbia problemi con la pubblicazione automatica da imporyazione rss?

  • ciao Niccolò. è da due giorni che impazzisco con questo codice… sino a qualche giorno fa sembrava funzionare alla perfezione ed ora riesco a venirne a capo. hai modo di darmi una mano please?

  • Maria

    Ciao!
    Ti spiego il mio dubbio. Quando scrivo un post non inserisco immagini nell’articolo (se così facessi e poi selezionassi l’opzione “immagine in evidenza” me ne ritroverei 2 uguali all’interno del post). Poi, cliccando su immagine in evidenza, seleziono quella da inserire direttamente dalla gallery (precedentemente caricata). Ovviamente mi riferisco solo al caso in cui l’immagine da pubblicare è soltanto una.
    Adesso mi chiedo…in questo modo l’immagine viene indicizzata? Sbaglio qualcosa?
    Ragionamento contorto, lo so, ma spero tu possa aiutarmi!

  • Stefano

    Gentile Niccolò, ho provato ad incollare il tuo codice nella pagina del template (che è stata fornita vuota) , ma non si vedono le prime immagini. Il codice inoltre compare sopra la home page. Come posso risolvere? grazie mille in anticipo