1

これは、ユーザーが共有できる URL です: http://dealsfortherich.com/product/6379316

したがって、私のアプリケーション (PHP) は次の URL を作成します。

https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fdealsfortherich.com%2Fproduct%2F6379316

そのリンクをチェックアウトすると、製品番号が切り捨てられていることがわかります。Sharer.php はスラッシュ (%2F) の後の数字を無視しています

https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fdealsfortherich.com%2Fproduct%2F6379316X

または https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fdealsfortherich.com%2Fproduct%2FX6379316 または https://www.facebook.com/sharer/sharer.php?u =http%3A%2F%2Fdealsfortherich.com%2Fproduct%2F637X9316

末尾のスラッシュを追加しても役に立ちません: https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fdealsfortherich.com%2Fproduct%2F6379316%2F

もちろん、次のような URL を処理する条件をアプリケーションに記述することもできます 。

あきらめて、sharer.php を使用せずに実行する必要がありますか?

4

1 に答える 1

0

理解した!問題は、Facebook がページをスクレイピングしていないことでした: http://dealsfortherich.com/product/6379316

Facebook オブジェクト デバッガーは、スクレイパーが次の正規名を見ていることを示していました: http://dealsfortherich.com/product/

私が発行したにもかかわらず、これは起こっていました:

remove_action('wp_head', 'rel_canonical'); 

wordpress の get_header() を呼び出す前 (これは wp_head() を呼び出します)、間違った正規リンクを削除する必要がありました。

問題は、フィルター fb_meta_tags (プラグインから) が、私が設定していると思っていた OG タグの前に OG タグの束を追加していたことでした! 案の定、タグ ベッティング セットの 1 つは次のとおりでした。

<meta property="http://ogp.me/ns#url" content="http://dealsfortherich.com/product/" />

これは、get_header() が呼び出される前に、私の php で解決した方法です。

add_filter( 'fb_meta_tags', 'remove_og_tags' );
function remove_og_tags( $meta_tags )
{
  $meta_tags['http://ogp.me/ns/fb#app_id'] = null;
  $meta_tags['http://ogp.me/ns#type'] = null;
  $meta_tags['http://ogp.me/ns#title'] = null;
  $meta_tags['http://ogp.me/ns#image'] = null;
  $meta_tags['http://ogp.me/ns#description'] = null;
  $meta_tags['http://ogp.me/ns#url'] = null;
  return $meta_tags;
}

これにより、私のタグを追加する前に、間違った OG タグが追加されるのを防ぎました。

<link rel="canonical" href="<?php echo $page_path; ?>"/>
<meta property="fb:app_id" content="xxxxxxxxxxxxx" /> 
<meta property="og:type" content="product" /> 
<meta property="og:title" content="<?php echo $the_title; ?>" /> 
<meta property="og:image" content="<?php echo $image_url; ?>" /> 
<meta property="og:description" content="<?php echo $tweet_text.$the_title; ?>" /> 
<meta property="http://ogp.me/ns#url" content="<?php echo $page_path; ?>"  />

すべてが美しく機能するようになりました。

于 2013-01-01T09:27:06.647 に答える