Přidal jsem otevřít metadata grafu pro všechny příspěvky na webu, ale když se pokusím vložit odkaz na příspěvek na Facebook, meta informace grafu se nenačte.

Poté, když vložím URL do debuggeru / linteru , funguje to jak v debuggeru, tak i při běžném zveřejňování příspěvků na Facebooku (což nefungovalo dříve).

Zdá se, že tento problém byl řešen v minulosti, v této otázce přetečení zásobníku . Tato otázka se však týká prostředí Rails.

V této otázce aplikace nemohla zpracovat několik požadavků HTTP najednou. Problém byl vyřešen zpracováním všech požadavků API Facebooku na pozadí pomocí něčeho, co se nazývá delayed_response.

Jaký je nejjednodušší způsob, jakým bych toho mohl dosáhnout nebo něco podobného v prostředí PHP se spuštěným WordPressem a tím (snad) vyřešit můj problém?

** V tomto příspěvku jsem nezahrnul ukázkový odkaz protože jakmile jej uživatel spustí pomocí ladicího programu, zdá se, že bude fungovat. *

Upravit – Ukázka metaznaček ze stránky příspěvku:

<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. &#8220;In response to this announcement, the Insurance Bureau of Canada (IBC) predicts the [...]" /> <meta property="og:site_name" content="Advocate Daily" /> 

PHP vkládané do 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); } 

Komentáře

  • Jak přidali jste to a co přesně děláte, abyste o tom proaktivně informovali Facebok?
  • Mám funkci, která zapisuje do mé hlavičky if is_post (). ' upravím svůj příspěvek a přidám ukázkový fragment metadat.

Odpovědět

Nejprve to není specifická otázka pro WordPress, je to otázka na Facebooku.

Zadruhé, Facebook ukládá stránky do mezipaměti, neprochází je při každém odeslání. Pokud máte URL, která již byla na Facebook již dříve odeslána, pak ji již jednou prolezli pro data OG a uložili ji do své mezipaměti. Pokud později změníte data OG, nevšimnou si to okamžitě, protože ne stahují ze své mezipaměti, nikoli ze stránky.

Debugger Facebooku nutí jejich prohledávač, aby stahoval ze stránky v reálném čase, a tak aktualizuje svou mezipaměť.

Jednoduché jako toto opravdu. Pokud již byla adresa URL někdy zveřejněna na Facebooku, změna údajů OG na ní nebude mít okamžitý účinek. Bude to trvat několik týdnů, než si to FB všimne. Použití debuggeru to přepíše.

Komentáře

  • Díky, já ' Počkám to. Tuto otázku jsem zveřejnil ve WordPressu, protože mě zajímalo, jestli existuje nejlepší způsob, jak zpracovat požadavky na Facebook API na pozadí v prostředí WordPressu, to je řečeno, váš názor je naprosto fér a váš odpověď má smysl. Díky.

Odpověď

Měl jsem stejný problém. Co musíte říct Facebook znovu poškrábe váš obsah.

Přejděte na tento odkaz: https://developers.facebook.com/tools/debug/sharing/ a připojte poté, co se ladicí program vrátí, mělo by se zobrazit tlačítko s nápisem „znovu seškrábnout“. Klikněte na něj.

Poté, co jsem to udělal, se informace na Facebooku objevila jako obvykle.

Jsem si jist, že existuje přímější způsob, jak říci Facebooku, aby váš obsah znovu vyškrábal, ale také to funguje.

Komentáře

  • Pěkné! Tato možnost ve skutečnosti nebyla v době zveřejnění této otázky ' t v původním linteru adresy URL na Facebooku. Je dobré vědět, že ' je tam teď.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *