추가했습니다. 사이트의 모든 게시물에 그래프 메타 데이터를 열었지만 Facebook에 게시물 링크를 붙여 넣으려고하면 그래프 메타 정보가로드되지 않습니다.

그런 다음 URL을 삽입하면 디버거 / 린터로 , 디버거 내에서 그리고 Facebook에 정상적으로 게시 할 때 (이전에 작동하지 않았던) 모두 작동합니다.

이 문제는 이 스택 오버플로 질문 에서 과거에 해결 된 것으로 보입니다. 그러나 그 질문은 Rails 환경과 관련이 있습니다.

이 질문에서 애플리케이션은 동시에 여러 http 요청을 처리 할 수 없었습니다.이 문제는 delayed_response라는 것을 사용하여 백그라운드에서 모든 Facebook API 요청을 처리하여 해결되었습니다.

WordPress를 실행하는 PHP 환경에서이 작업을 수행 할 수있는 가장 간단한 방법은 무엇입니까? 그러면 문제를 해결할 수 있습니다.

**이 게시물에 샘플 링크를 포함하지 않았습니다. 사용자가 디버거를 통해 실행하자마자 “작동하는 것처럼 보입니다. *

편집-게시물 페이지의 메타 태그 샘플 :

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

wp_head에 삽입되는 PHP :

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); } 

댓글

  • 방법 추가 했나요? Facebok에 사전에 알리기 위해 정확히 무엇을하고 있나요?
  • is_post () 인 경우 헤더에 쓰는 함수가 있습니다. 저는 ' 내 게시물을 수정하고 메타 데이터의 샘플 스 니펫을 추가합니다.

답변

첫째, 이것은 WordPress 관련 질문이 아니라 Facebook 질문입니다.

둘째, Facebook은 페이지를 캐시하고 제출할 때마다 페이지를 크롤링하지 않습니다. 이전에 Facebook에 이미 제출 된 URL은 이전에 한 번 OG 데이터에 대해 이미 크롤링하여 캐시에 저장했을 것입니다. 나중에 OG 데이터를 변경하면 “즉시 알아 차리지 못합니다.” 페이지가 아니라 캐시에서 가져옵니다.

Facebook 디버거는 크롤러가 페이지에서 실시간으로 가져 오도록 강제하므로 캐시를 업데이트합니다.

URL이 이전에 Facebook에 게시 된 적이있는 경우 OG 데이터를 변경하면 즉시 적용되지 않습니다. FB가 통지하기까지 몇 주가 소요됩니다. 디버거를 사용하면이를 무시합니다.

댓글

  • 감사합니다. ' 기다릴 것입니다. WordPress 환경에서 백그라운드에서 Facebook API 요청을 처리하는 가장 좋은 방법이 있는지 궁금했기 때문에이 질문을 WordPress에 게시했습니다. 대답은 의미가 있습니다. 감사합니다.

답변

같은 문제가 발생했습니다. Facebook에서 콘텐츠를 다시 스크랩하세요.

이 링크로 이동 : https://developers.facebook.com/tools/debug/sharing/ 및 플러그 디버거가 돌아 오면 “다시 스크랩”이라는 버튼이 표시됩니다. 클릭하세요.

그런 다음 Facebook에 정보가 정상적으로 표시되었습니다.

Facebook에 콘텐츠를 새로 스크랩하도록 지시하는 더 직접적인 방법이있을 것입니다.하지만이 방법도 작동합니다.

댓글

  • 좋아요! 이 옵션은 제가이 질문을 게시 할 당시에 원래 Facebook URL linter에 실제로 없었습니다. ' 알아서 반가 웠습니다. ' 지금 거기에 있습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다