Am adăugat deschideți metadatele grafice la toate postările de pe un site, cu toate acestea, când încerc să lipesc un link de postare pe Facebook, informațiile meta grafice nu sunt încărcate.
Apoi, când introduc URL-ul în depanator / linter , funcționează, atât în depanator, cât și la postarea normală pe Facebook (care nu a funcționat cu câteva momente înainte).
Această problemă pare să fi fost abordată în trecut, în această întrebare de depășire a stivei . Cu toate acestea, această întrebare se referă la un mediu Rails.
În această întrebare, aplicația nu putea gestiona mai multe solicitări http în același timp. Problema a fost rezolvată prin gestionarea tuturor cererilor API Facebook în fundal folosind ceva numit delayed_response.
Care este cea mai simplă mod în care aș putea realiza acest lucru sau ceva similar într-un mediu PHP care rulează WordPress și, prin urmare (sperăm) să-mi rezolv problema?
** Nu am inclus un eșantion de link în această postare deoarece de îndată ce un utilizator îl rulează prin depanator, „va părea să funcționeze. *
Editați- Eșantion de metaetichete dintr-o pagină de postare:
<meta property="og:title" content="Budget proposal good news for Ontario drivers - AdvocateDaily.com" /> <meta property="og:type" content="website" /> <meta property="og:image" content="http://build.advocatedaily.com/wp-content/uploads/2013/04/Stacey-Stevens_Colour_NEW_2012-e1354206636925-150x150.jpg" /> <meta property="og:url" content="http://advocatedaily.com/2013/05/budget-proposal-good-news-for-ontario-drivers/" /> <meta property="og:description" content="A provincial budget proposal to reduce auto insurance premiums by an average of 15 per cent is good news for Ontario drivers, but should not come at the cost of benefits available under the policy, says Toronto personal injury lawyer Stacey L. Stevens. “In response to this announcement, the Insurance Bureau of Canada (IBC) predicts the [...]" /> <meta property="og:site_name" content="Advocate Daily" />
PHP-ul fiind inserat în wp_head:
add_action("wp_head", "add_fb_open_graph_tags"); function add_fb_open_graph_tags() { if (is_single()) { global $post; if(get_the_post_thumbnail($post->ID, "thumbnail")) { $thumbnail_id = get_post_thumbnail_id($post->ID); $thumbnail_object = get_post($thumbnail_id); $image = $thumbnail_object->guid; } else { $image = get_template_directory_uri()."/images/advocatedaily-avatar.png"; } //$description = get_bloginfo("description"); $description = og_excerpt( $post->post_content, $post->post_excerpt ); $description = strip_tags($description); $description = str_replace("\"", """, $description); ?> <meta property="og:title" content="<?php the_title(); ?> - AdvocateDaily.com" /> <meta property="og:type" content="website" /> <meta property="og:image" content="<?php echo $image; ?>" /> <meta property="og:url" content="<?php the_permalink(); ?>" /> <meta property="og:description" content="<?php echo $description ?>" /> <meta property="og:site_name" content="<?php echo get_bloginfo("name"); ?>" /> <?php } } function og_excerpt($text, $excerpt){ if ($excerpt) return $excerpt; $text = strip_shortcodes( $text ); $text = apply_filters("the_content", $text); $text = str_replace("]]>", "]]>", $text); $text = strip_tags($text); $excerpt_length = apply_filters("excerpt_length", 55); $excerpt_more = apply_filters("excerpt_more", " " . "[...]"); $words = preg_split("/[\n ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY); if ( count($words) > $excerpt_length ) { array_pop($words); $text = implode(" ", $words); $text = $text . $excerpt_more; } else { $text = implode(" ", $words); } return apply_filters("wp_trim_excerpt", $text, $raw_excerpt); }
Comentarii
- Cum l-ați adăugat și ce faceți cu precizie pentru a notifica proactiv Facebok despre asta?
- Am o funcție care scrie în antetul meu dacă is_post (). ' îmi voi edita postarea și voi adăuga un fragment de metadate.
Răspuns
În primul rând, aceasta nu este o întrebare specifică WordPress, este o întrebare Facebook.
În al doilea rând, Facebook păstrează paginile în cache, nu le accesează cu crawlere la fiecare trimitere. Dacă aveți o Adresa URL care a fost deja trimisă pe Facebook înainte, atunci o vor fi accesat deja cu crawlere pentru datele OG și le-au salvat în memoria cache. Dacă mai târziu schimbați datele OG, nu le vor observa imediat, pentru că „ scoate din memoria cache, nu din pagină.
Facebook Debugger își forțează crawlerul să tragă de pe pagină în timp real și astfel își actualizează memoria cache.
Simplu Într-adevăr, dacă URL-ul a fost vreodată postat pe Facebook, modificarea datelor OG de pe acesta nu va avea efect imediat. Va dura câteva săptămâni înainte ca FB să observe. Utilizarea depanatorului suprascrie acest lucru.
Comentarii
- Mulțumesc, eu ' Voi aștepta. Am postat această întrebare în WordPress pentru că mă întrebam dacă există cel mai bun mod de a gestiona cererile API Facebook în fundal într-un mediu WordPress, care este spus, punctul tău este complet corect și răspunsul are sens. Mulțumesc.
Răspunsul
Am avut aceeași problemă. Ce trebuie să spuneți Facebook pentru a vă răscoli din nou conținutul.
Accesați acest link: https://developers.facebook.com/tools/debug/sharing/ și conectați URL-ul dvs. înăuntru. După ce depanatorul revine, ar trebui să vedeți un buton care spune „răzuiește din nou”. Faceți clic pe el.
După ce am făcut asta, informațiile au apărut ca normal pe Facebook.
Sunt „sigur că există” o modalitate mai directă de a spune Facebook să vă răscolească din nou conținutul, dar și acest lucru funcționează.
Comentarii
- Frumos! Această opțiune nu era de fapt ' acolo în linia URL originală Facebook, în momentul postării acestei întrebări. Bine de știut că ' există acum.