jag lade till öppna metadata för diagram till alla inlägg på en webbplats, men när jag försöker klistra in en inläggslänk på Facebook laddas inte metainformationen.
Sedan när jag sätter in webbadressen i felsökaren / linter fungerar den, både inom felsökaren och när du publicerar normalt på Facebook (vilket inte fungerade stunder tidigare).
Det här problemet verkar ha behandlats tidigare i denna Stack Overflow-fråga . Men den frågan gäller en Rails-miljö.
I den frågan kunde applikationen inte hantera flera http-förfrågningar samtidigt. Problemet löstes genom att hantera alla Facebook-API-förfrågningar i bakgrunden med något som kallas delayed_response.
Vad är det enklaste sättet på vilket jag kunde åstadkomma detta eller något liknande i en PHP-miljö som kör WordPress och därmed (förhoppningsvis) lösa mitt problem?
** Jag inkluderade inte en exempellänk i det här inlägget för så snart en användare kör det genom felsökaren verkar det fungera. *
Redigera – Exempel på metataggar från en inläggssida:
<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 infogas i 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); }
Kommentarer
- Hur hade du lagt till det och vad exakt gör du för att proaktivt meddela Facebok om det?
- Jag har en funktion som skriver till min rubrik om is_post (). Jag ' Redigerar mitt inlägg och lägger till ett urval av metadata.
Svar
För det första är det inte en WordPress-specifik fråga, det är en Facebook-fråga.
För det andra cachar Facebook sidor, de genomsöker inte dem vid varje inlämnande. Om du har en URL som redan har skickats till Facebook tidigare, då har de redan genomsökt det för OG-data en gång tidigare och sparat det i deras cache. Om du senare ändrar OG-data kommer de inte att märka det direkt, eftersom de ” återhämtar sig från deras cache, inte från sidan.
Facebook Debugger tvingar sin sökrobot att dra från sidan i realtid och uppdaterar därmed deras cache.
Enkelt som det verkligen. Om webbadressen någonsin har publicerats på Facebook tidigare kommer ändring av OG-data på den inte att omedelbart träda i kraft. Det kommer att ta några veckor innan FB märker. Att använda felsökaren åsidosätter det.
Kommentarer
- Tack, jag ' Jag väntar på det. Jag lade upp den här frågan i WordPress eftersom jag undrade om det fanns ett bästa sätt att hantera Facebook API-förfrågningar i bakgrunden i en WordPress-miljö, med det sagt, din poäng är helt rättvis och din svaret är vettigt. Tack.
Svar
Jag hade samma problem. Vad du behöver är att berätta Facebook för att skrapa ditt innehåll igen.
Gå till den här länken: https://developers.facebook.com/tools/debug/sharing/ och plugga in din webbadress in. När felsökaren har kommit tillbaka, ska du se en knapp som säger ”skrapa igen”. Klicka på den.
När jag gjorde det såg informationen ut som vanligt på Facebook.
Jag är säker på att det finns ett mer direkt sätt att berätta Facebook att skrapa ditt innehåll på nytt men det fungerar också.
Kommentarer
- Trevligt! Det här alternativet var faktiskt inte ' t där i den ursprungliga Facebook-URL-lintern när jag lade upp denna fråga. Bra att veta det ' är där nu.