Eu adicionei abra os metadados do gráfico para todas as postagens em um site; no entanto, quando tento colar um link de postagem no Facebook, as metainformações do gráfico não são carregadas.

Então, quando insiro o URL no depurador / linter , funciona, tanto no depurador quanto ao postar normalmente no Facebook (o que não funcionava momentos antes).

Este problema parece ter sido resolvido no passado, nesta questão do Stack Overflow . No entanto, essa questão pertence a um ambiente Rails.

Nessa pergunta, o aplicativo não conseguia lidar com várias solicitações http ao mesmo tempo. O problema foi resolvido lidando com todas as solicitações da API do Facebook em segundo plano usando algo chamado delayed_response.

Qual é a maneira mais simples de fazer isso ou algo semelhante em um ambiente PHP executando WordPress e, assim, (espero) resolver meu problema?

** Não incluí um link de amostra neste post porque assim que um usuário o executa no depurador, ele “parecerá funcionar. *

Editar – Amostra de metatags de uma página de postagem:

<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" /> 

O PHP sendo inserido em 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); } 

Comentários

  • Como você adicionou e o que exatamente você está fazendo para notificar proativamente o Facebok sobre isso?
  • Eu tenho uma função que grava em meu cabeçalho se is_post (). Eu ' edito minha postagem e adiciono um snippet de amostra dos metadados.

Resposta

Em primeiro lugar, esta não é uma pergunta específica do WordPress, é uma pergunta do Facebook.

Em segundo lugar, o Facebook armazena em cache as páginas, eles não as rastreiam em cada envio. Se você tiver um URL que já foi enviado ao Facebook antes, então eles já terão rastreado para os dados OG uma vez antes e salvado em seu cache. Se você alterar os dados OG posteriormente, eles “não notarão imediatamente, porque eles” estão puxando do cache, não da página.

O Facebook Debugger força seu rastreador a extrair da página em tempo real e, portanto, atualiza o cache.

Simples assim realmente. Se o URL já foi postado no Facebook antes, a alteração dos dados OG nele não terá efeito imediato. Levará algumas semanas até que o FB avise. O uso do depurador substitui isso.

Comentários

  • Obrigado, I ' Vou esperar. Postei esta pergunta no WordPress porque estava me perguntando se havia uma melhor maneira de lidar com as solicitações da API do Facebook em segundo plano em um ambiente WordPress, dito isso, seu ponto é totalmente justo e seu a resposta faz sentido. Obrigado.

Resposta

Eu tive o mesmo problema. O que você precisa é dizer Facebook para copiar seu conteúdo novamente.

Acesse este link: https://developers.facebook.com/tools/debug/sharing/ e conecte sua URL. Depois que o depurador voltar, você verá um botão que diz “raspar novamente”. Clique nele.

Depois que fiz isso, as informações apareceram normalmente no Facebook.

Tenho certeza de que há uma maneira mais direta de dizer ao Facebook para copiar seu conteúdo de novo, mas isso também funciona.

Comentários

  • Legal! Na verdade, essa opção não estava ' lá no URL original do Facebook, no momento em que publiquei esta pergunta. É bom saber que ' está lá agora.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *