Ecco un comodo hack per far in modo che quando un utente segnali un link ad una vostra pagina del blog su Facebook venga mostrata solo la prima immagine del post.
Per prima cosa dovrete modificare il file functions.php del vostro tema.
Andremo a scrivere su questo file la funzione che si occuperà di individuare la prima immagine del post e nel caso non trovasse nulla di inserire un’immagine di default a vostra scelta.
Inseriamo il codice in functions.php stando attenti a definire un path per l’eventuale immagine di default (nel nostro caso è /images/default.jpg)
function catch_that_image() { global $post, $posts; $first_img = ''; ob_start(); ob_end_clean(); $output = preg_match_all('//i', $post->post_content, $matches); $first_img = $matches [1] [0]; if(empty($first_img)){ //definisce immagine di default $first_img = "/images/default.jpg"; } return $first_img; }
Appena finite le modifiche sovrascrivete il file functions.php.
Basterà ora aggiungere nel file header.php (se volete che l’immagine venga individuata su tutte le pagine del blog) o nel file single.php la seguente stringa
Ora ogni volta che qualcuno posterà un vostro link su FaceBook verrà automaticamente caricata la prima immagine del post
Se avete problemi segnalateli nei commenti
Pare funzionare, ma è ancora buono?
@paolo puoi provare a mettere .jpg al posto di * nella riga $output = preg_match_all….
Ma devi provare… non ho tempo di farlo io adesso.
Sorry
Ciao! Un’informazione… Come potrei limitare la scelta dell’immagine ai soli file jpg, gif e png? Grazie!!
No intendevo “Wp-Syntax” :-) Comunque ottimo codice, mi è servito per il mio template dopo averlo modificato adeguatamente per il mio scopo.
Nessun plugin, io l’ho inserito a mano nel file header.php del mio tema
PS: Che plug-in è stato utilizzato per inserire il codice php?
Grazie!
Fantastico! Grazie mille, devo adattare questo codice ad una mia esigenza particolare :-)
Ottimo, funge alla grande.