Immagine predefinita per la homepage quando condivisa sui social media
Attualmente, la mia homepage contiene alcuni dei post più recenti. Quindi, quando la homepage viene condivisa sui social media (ad esempio Facebook), l'immagine in miniatura che viene visualizzata proviene dall'immagine principale dell'ultimo post pubblicato.
Quello che sto cercando di fare è impostare la visualizzazione di un'immagine predefinita specifica quando la homepage viene condivisa. Tuttavia, l'immagine dovrebbe essere visualizzata solo quando la homepage viene condivisa e non dovrebbe apparire in altro modo sul sito. Qual è il modo migliore per farlo?

Diverse opzioni:
Plugin preconfigurato
Se utilizzi Yoast WordPress SEO, hai un'impostazione integrata per le immagini di Facebook. Sotto il menu SEO > Social, vai alla scheda Facebook e seleziona un'immagine nelle "Impostazioni della pagina iniziale". Puoi anche impostare un'immagine come fallback, per i post che non hanno un'immagine in evidenza, sotto "Impostazioni predefinite".
Altri plugin SEO potrebbero avere funzionalità simili.
Child theme
Puoi creare un child theme o modificare un tema personalizzato. Innanzitutto, assicurati che il tema supporti un logo del sito. In caso contrario, aggiungi il supporto per il logo personalizzato.
Quindi, modifica o copia header.php
nel tuo nuovo child theme. All'interno dei tag <head></head>
, includi un controllo per if(is_front_page())
o if(is_home())
a seconda delle tue esigenze. Sembra che entrambi possano funzionare nel tuo caso.
Se la condizione è verificata, recupera l'URL del logo personalizzato
$image = wp_get_attachment_image_url(get_theme_mod('custom_logo'), 'large');
e inseriscilo all'interno dei tag Open Graph:
<meta property="og:image" content="<?php echo $image; ?>" />
<meta name="twitter:image" content="<?php echo $image; ?>" />
Plugin personalizzato
Potresti anche creare il tuo plugin, se non vuoi usare Yoast WordPress SEO o modificare il tema. Il rischio è che un tema o plugin esistente potrebbe già includere un'immagine in evidenza, quindi dovresti controllare il codice sorgente della pagina e assicurarti che nient'altro stia impostando un'immagine in evidenza. Suppongo che sia questo il caso, dato che il tuo tema e plugin attuali stanno impostando l'immagine del post pubblicato più di recente quando provi a condividerlo.
Sostanzialmente, aggiungeresti un'azione per l'hook wp_head
. La tua azione includerebbe i dati dell'immagine Open Graph e Twitter, proprio come faresti se scegliessi la prima opzione, lavorando con il tema.
Dovresti decidere se codificare l'immagine direttamente nel tuo plugin, o se creare una pagina di opzioni da qualche parte in wp-admin dove poter cambiare l'immagine quando vuoi.

Diverse piattaforme social utilizzano metodi differenti.
Per Facebook, è necessario un insieme di tag <meta>
con proprietà og
- ad esempio og:url
, og:type
, og:description
e og:image
. og:image
dovrebbe contenere il percorso completo dell'immagine che si desidera venga visualizzata.
Twitter è simile ma utilizza il proprio meccanismo di 'card' che richiede un proprio set di tag meta
- ad esempio name="twitter:card"
e name="twitter:image"
Credo esistano plugin per gestire questo aspetto. Personalmente utilizzo una semplice funzione che sfrutta la miniatura della pagina, oppure un'immagine alternativa se questa non è impostata.

I meta tag OG probabilmente sono ciò che stai cercando, in questo caso:
<meta property="og:image" content="percorso/a/foo.jpg" />
inseriscilo all'interno di un if is_home()
e si spera che funzioni
