Imagine implicită pentru pagina principală când este distribuită în social media
În prezent, pagina mea principală conține câteva dintre cele mai recente articole. Prin urmare, când pagina principală este distribuită prin social media (de exemplu Facebook), imaginea miniatură care este afișată provine din imaginea primului articol recent.
Ceea ce încerc să fac este să setez astfel încât atunci când pagina principală este distribuită, să fie afișată o imagine specifică, implicită. Cu toate acestea, imaginea trebuie să fie afișată doar când pagina principală este distribuită și nu ar trebui să apară în alt mod pe site. Care ar fi cea mai bună modalitate de a face acest lucru?

Mai multe opțiuni:
Plugin gata de folosit
Dacă folosești Yoast WordPress SEO, ai o setare integrată pentru imaginile Facebook. Sub meniul SEO > Social, accesează fila Facebook și selectează o imagine în secțiunea „Setări pagină principală”. Poți seta și o imagine implicită, pentru articolele care nu au imagine reprezentativă, în secțiunea „Setări implicite”.
Alte plugin-uri SEO pot avea funcționalități similare.
Temă copil
Poți crea o temă copil sau modifica o temă personalizată. Mai întâi, asigură-te că tema suportă un logo pentru site. Dacă nu, adaugă suport pentru logo personalizat.
Apoi, editează sau copiază header.php
în noua ta temă copil. În interiorul tag-urilor <head></head>
, include o verificare pentru if(is_front_page())
sau if(is_home())
în funcție de nevoile tale. Se pare că oricare ar funcționa în cazul tău.
Dacă condiția este îndeplinită, obține URL-ul logo-ului personalizat
$image = wp_get_attachment_image_url(get_theme_mod('custom_logo'), 'large');
și afișează-l în tag-urile Open Graph:
<meta property="og:image" content="<?php echo $image; ?>" />
<meta name="twitter:image" content="<?php echo $image; ?>" />
Plugin personalizat
Poți crea și propriul tău plugin, dacă nu dorești să folosești Yoast WordPress SEO sau să modifici tema. Riscul este că o temă sau un plugin existent ar putea deja să afișeze o imagine reprezentativă, așa că ar trebui să verifici codul sursă al paginii și să te asiguri că nimic altceva nu setează o imagine reprezentativă. Presupun că acesta este cazul, deoarece tema și plugin-urile tale actuale afișează imaginea articolului cel mai recent publicat atunci când încerci să-l partajezi.
În esență, ai adăuga o acțiune pentru hook-ul wp_head
. Acțiunea ta ar afișa datele Open Graph și Twitter pentru imagine, la fel cum ai face dacă ai alege prima opțiune, lucrând cu tema.
Ar trebui să decizi dacă să hardcodezi imaginea în plugin-ul tău sau să creezi o pagină de setări undeva în wp-admin unde poți schimba imaginea oricând dorești.

Diferite platforme sociale folosesc metode diferite.
Pentru Facebook, ai nevoie de un set de tag-uri <meta>
cu proprietăți og
- de exemplu og:url
, og:type
, og:description
și og:image
. og:image
ar trebui să conțină calea completă către imaginea pe care dorești să fie afișată.
Twitter este similar dar are propriul mecanism de 'card' care necesită propriul set de tag-uri meta
- de exemplu name="twitter:card"
și name="twitter:image"
Cred că există plugin-uri care se ocupă de acest lucru. Eu am propria funcție simplă care folosește thumbnail-ul paginii, sau o imagine implicită dacă acesta nu este setat.

Tag-urile meta OG sunt probabil ceea ce cauți, în acest caz:
<meta property="og:image" content="calea/către/foo.jpg" />
Pune acest cod într-o condiție is_home()
și sperăm că va funcționa.
