追加しましたサイト上のすべての投稿に対してグラフメタデータを開きますが、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 Debuggerは、クローラーにリアルタイムでページからプルするように強制し、キャッシュを更新します。

そのように簡単です。本当に。URLが以前にFacebookに投稿されたことがある場合、そのURLのOGデータを変更してもすぐには効果がありません。 「FBが通知するまでに数週間かかります。デバッガーを使用すると、それが上書きされます。

コメント

  • ありがとう、I '待ってください。この質問をWordpressに投稿しました。これは、Wordpress環境でFacebook APIリクエストをバックグラウンドで処理する最善の方法があるかどうか疑問に思っていたためです。とはいえ、あなたの主張は完全に公平であり、答えは理にかなっています。ありがとう。

答え

同じ問題がありました。あなたがする必要があるのは伝えることですFacebookでコンテンツをもう一度スクレイプします。

次のリンクにアクセスします: https://developers.facebook.com/tools/debug/sharing/ そしてプラグインURLを入力します。デバッガーが戻ると、「もう一度スクレイプ」というボタンが表示されます。クリックします。

それを実行すると、Facebookに通常どおり情報が表示されます。

Facebookにコンテンツを新たにスクレイプするように指示するより直接的な方法があると確信していますが、これも機能します。

コメント

  • いいね!この質問を投稿した時点では、このオプションは実際には元のFacebookURLリンターには'ありませんでした。 'が今そこにあることを知っておくとよいでしょう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です