Cum pot controla imaginea pentru butonul Like de la Facebook?

3 nov. 2010, 22:13:46
Vizualizări: 62K
Voturi: 13

Am un blog cu câteva articole, și fiecare articol are integrat un buton Like de Facebook. Apăsarea butonului deschide o fereastră de dialog astfel încât vizitatorii mei pot distribui articolul pe Facebook cu un comentariu.

Totuși, când se face distribuirea, imaginea selectată de Facebook este o pictogramă generică de email și nu miniatura articolului.

Cum pot controla imaginea care este folosită la distribuire?

2
Comentarii

Acel site a fost recent hackuit, se pare...

MirroredFate MirroredFate
28 iul. 2011 02:23:23

Aproape că nu e o întrebare despre WordPress...

Kaaviar Kaaviar
6 mar. 2012 10:45:43
Toate răspunsurile la întrebare 8
0
11

Facebook utilizează acum protocolul OpenGraph. Puteți adăuga imagini folosind:

<meta property="og:image" content="http://YOUR_IMAGE_URL" />

Adăugați această linie în header-ul paginii dumneavoastră.

Alternativ, puteți folosi plugin-ul meu pentru a face asta automat.

El face doar acest lucru și nu sunt necesare setări.

http://shailan.com/wordpress/plugins/facebook-meta-tags-plugin/

19 mar. 2011 11:40:28
1

Imaginea folosită pentru partajare este preluată dintr-un fragment de cod din antetul site-ului tău, care arată cam așa:

<link rel="image_src" href="calea/către/tema/screenshot.png" />

De obicei, acesta face legătura către captura de ecran a temei site-ului. Dacă ai elimina codul din antetul fișierului și pe single.php l-ai pune în interiorul loop-ului, apelând imaginea postului în elementul href, cred că ar funcționa. Așadar, ar arăta cam așa:

<link rel="image_src" href="<?php the_post_thumbnail(); ?>" />

Acest lucru înseamnă că, dacă ai butoane de like pe pagini care afișează mai multe articole, probabil nu vei avea nicio imagine. Dacă ai include un cod condițional care să-l elimine doar pe single.php, atunci ai avea imaginea normală pe orice pagină cu mai multe articole și un buton de like, iar imaginea postului când este folosit șablonul single.php. Deci, codul din antet ar fi:

<?php if ( is_single() ) { /* nu face nimic pe paginile individuale */ } else { ?>
<link rel="image_src" href="calea/către/tema/screenshot.png" />
<?php } ?>

Apoi, ai folosi în continuare codul pentru a include imaginea postului în single.php.

4 nov. 2010 17:04:33
Comentarii

Acest lucru a fost marcat ca posibil învechit, te rugăm să iei în considerare actualizarea răspunsului tău (poate ceva de genul "pe vremuri era așa, acum funcționează mai bine").

Rarst Rarst
15 oct. 2011 00:17:35
0

Trebuie să folosești Protocolul Facebook Open Graph. Nu sunt sigur de ce răspunsul Acceptat nu este unul dintre cele multe răspunsuri legate de OG: (la care am votat în sus), dar este greșit.

http://developers.facebook.com/docs/opengraph/

Poți personaliza multe lucruri, inclusiv titlul, imaginea, descrierea, categoria, ultima actualizare etc... dacă folosești Open Graph. Dacă folosești aceste alte soluții incomplete, pierzi din vedere imaginea de ansamblu.

Dacă nu aș fi urmat Protocolul OG pentru toate lucrările pe care le fac pentru Facebook, aș fi fost dat afară.

15 oct. 2011 00:07:28
0

Dacă încercați următoarele:

<link rel="image_src" href="<?php the_post_thumbnail(); ?>" />

Veți observa că WordPress afișează întregul cod HTML necesar pentru a afișa imaginea, nu doar atributul SRC pe care îl căutați.

O soluție ar fi:

<?php

// Imaginea reprezentativă pentru Facebook Like
$feature_image = get_the_post_thumbnail($post->ID);

// Obține sursa imaginii
$doc = new DOMDocument();
$doc->loadHTML($feature_image);
$imageTags = $doc->getElementsByTagName('img');

foreach($imageTags as $tag) {
        $image_url = $tag->getAttribute('src');
    }
?>
<link rel="image_src" href="<?php echo $image_url; ?>" />

Acest cod vă oferă doar URL-ul imaginii. Este posibil să existe o metodă mai scurtă, dar soluția prezentată rezolvă problema.

Sper că vă ajută.

Matt.

19 mar. 2011 01:36:37
0

Asigurați-vă că verificați URL-ul aici dacă imaginea specificată nu apare corect:

http://developers.facebook.com/tools/lint/

27 iul. 2011 21:18:21
0

Dacă dorești să folosești prima imagine din articolul tău ca miniatură, cu o opțiune de rezervă precum logo-ul tău, încearcă plugin-ul meu - http://wordpress.org/extend/plugins/facebook-like-thumbnail/ Explicația pentru adăugarea imaginii de rezervă (logo) se găsește la http://blog.ashfame.com/?p=888

19 mar. 2011 09:57:54
0
<meta property="og:image" content="http://URL_IMAGINEA_TA" />

Această metodă funcționează pentru "like"-uri, dar mai târziu, dacă dori să partajezi un link în jurnalul tău (de exemplu), această imagine este selectată automat.

Fără acest tag meta, poți selecta dintre toate imaginile de pe site-ul legat.

Știe cineva vreo metodă de a păstra imaginea statică pentru "like", dar care să permită alegerea unei imagini la partajarea unui URL?

16 aug. 2011 17:18:08
2

OK, am scris un pic de JavaScript pentru a popula meta og:image cu imaginea reprezentativă pe care o aleg. Este un hack pe care îl adaugi o singură dată în fișierul header.

În postarea mea WordPress, adaug ID-ul "featured-image" (știu că în versiunile mai noi de WordPress această funcționalitate este integrată, eu folosesc o versiune veche).

<xmp><img src="http://mysite.com/catphoto.jpg" id="featured-image" /></xmp>

Scriu un meta tag pentru og:image cu un placeholder, cum ar fi logo-ul blogului meu. Adaug "id="meta-image" în tag, de exemplu:

<meta property="og:image" src="http://mysite.com/logo.jpg" id="meta-image" />

Apoi adaug acest JavaScript în header:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"> </script>

<script type="text/javascript">
$(document).ready( function(){
    var featured_image = $("#featured-image").attr("src");
    $('meta[property="og:image"]').attr("content",featured_image);
});
6 mar. 2012 09:35:25
Comentarii

Folosește wp_enqueue_script() pentru a încărca Javascript în WordPress.

fuxia fuxia
6 mar. 2012 13:04:36

Funcționează asta cu adevărat? Am încercat deja ceva similar fără succes - instrumentul de depanare Facebook nu recunoaște imaginea mea. Nu cred că analizează JavaScript-ul.

benedict_w benedict_w
12 aug. 2013 19:32:09