2016-08-20 34 views
2

(我沒有足夠的聲譽與發佈鏈接,所以所有的HTTP://將是http:/)更改我的wordpress固定鏈接後,我的Facebook一樣計數出問題

我已經改變了我WordPress的永久鏈接從http:/ SITEURL/p =號至http:/ SITEURL /數量/塞

我的頭告訴Facebook的老帖地址新郵地址添加代碼,如下

<?php if (is_single() || is_page()) { 
 
     $urlidcheck = get_the_id(); 
 
      if($urlidcheck <= 85){ 
 
?> 
 
       <meta property="og:url" content="http:/siteurl/?p=<?php the_ID(); ?>" /> 
 
      <link rel="canonical" href="http:/siteurl/?p=<?php the_ID(); ?>" > 
 
     <?php } else { ?> 
 
       <meta property="og:url" content="<?php get_bloginfo('url'); ?>" /> 
 
     <?php } 
 
     } 
 
?>

當我使用共享調試器工具刮擦後,它可以很好地工作,但暫時

抓取後,抓取的URL,規範的URL和og:url都是正確的,如下所示。

擷取的URL爲http:/ SITEURL/47 /旅遊爾運行

規範的URL爲http:/ SITEURL/P = 47

元屬性= OG:URL內容= HTTP:/ SITEURL/p = 47

但示出了警告如下

[圓形重定向路徑] 檢測到循環重定向路徑(有關詳細信息,請參閱「重定向路徑」部分)。

[不匹配og:網址和規範網址] og:標頭中的url標記與html中的rel ='canonical'鏈接不相同。

[解析器不匹配元數據] 該元數據的解析器結果與輸入元數據不匹配。很可能,這是由於數據以意想不到的方式排序造成的,給出的屬性只有單個值,或給定屬性的屬性值不匹配時會出現多個值。下面是在解析結果中沒有看到的輸入屬性:'og:locale:locale'

幾天後,fb like counts突然變爲零。我使用共享調試器工具來檢查,它顯示Canonical URL出錯了,但og:url仍然正確。

擷取的URL爲http:/ SITEURL/47 /旅遊爾運行

規範的URL爲http:/ SITEURL/47 /旅遊爾運行

元屬性= OG:URL內容= HTTP:/ SITEURL/p = 47

也警告彈出如下

[跟不上重定向路徑] 使用來自http:/ siteurl /?p = 47的數據,因爲重定向路徑之後出現錯誤。

[Circular Redirect Path] 檢測到循環重定向路徑(詳情請參閱'重定向路徑'部分)。

[無法遵循重定向] URL請求HTTP重定向,但無法跟蹤。

所以我不得不每隔幾天去刮手冊每篇文章,這很累人。

任何人都可以給我一個關於如何解決問題的提示和指導? 非常感謝。 無論如何,感謝您的時間。

+0

您需要保留FB scraper可訪問的舊URL,以便它不會被重定向到新的URL,並且它們必須提供相關的OG元數據。 https://developers.facebook.com/docs/plugins/faqs#faq_1149655968420144 – CBroe

回答

0

你是這樣做的倒退。規範和og:url都需要指向URL的當前版本,否則您將得到錯誤。當這些標籤與他們所在的頁面不匹配時,他們會去獲取這些標籤中引用的鏈接。

所以你基本上要告訴Facebook去取舊版的鏈接。一旦他們去獲取該版本,服務器會發送一個301重定向回到新版本的鏈接。新的引用了舊的引擎,它創建了一個無限循環或者爲刮板來回重定向。

不幸的是,在包括Facebook在內的大多數社交網絡中,一旦你改變你的固定鏈接設置,你就會失去你的分享數量,因爲Facebook現在認爲它是一個全新的鏈接。

解決此問題的唯一方法是創建您自己的分享按鈕,並使用Facebook的API來請求分享次數。當通過API請求這些計數時,您必須發送兩個請求,每個鏈接版本一個,然後在顯示它們之前將它們添加到一起。

0

謝謝你的答案,Nicholas和CBroe。您讓我注意到問題應該由規範和重定向網址引起。

我回去檢查瀏覽器中的html代碼,發現身上還有另一個規範的URL,它只在「http:/ siteurl/number/slug」中找到永久鏈接,我不知道它是哪個wordpress文件從。

此外,我想 當我去http:/ siteurl /?p = 47時,我被帶到http:/ siteurl/47/travel-seoul-running。這只是因爲wordpress自己猜測最接近的地址。這不是一個真正的重定向。

所以我做的是,我安裝了兩個插件「Canonical Seo Wordpress插件」和「重定向」。 (我知道插件不是一個好方法,但這是一個即時的方式,讓我看看問題是如何解決的。)

「Canonical Seo Wordpress插件」幫助我刪除現有的Canonical url,我不想要。我可以在帖子編輯頁面中爲每篇文章設置我想要的規範網址。 (但它也花了我很長時間來做所有我的帖子。)

我還爲每個舊帖子設置了301重定向,它使用http:/ siteurl /?p = number到http:/ siteurl/number/slug與「重定向」插件。

我在頭一點點改變

<?php if (is_single() || is_page()) { 
 
     $urlidcheck = get_the_id(); 
 
      if($urlidcheck <= 85){ 
 
?> 
 
       <meta property="og:url" content="http:/siteurl/?p=<?php the_ID(); ?>" /> 
 
     <?php } else { ?> 
 
       <meta property="og:url" content="<?php the_permalink() ?>" /> 
 
     <?php } 
 
     } 
 
?>

代碼

我把FB樣箱的地方

<div class="fb-like" data-href="<?php the_permalink() ?>" data-layout="button_count" data-action="like" data-size="small" data-show-faces="false" data-share="true"></div>

我使用共享調試器工具來檢查http:/ siteurl/47/travel-seoul-running和http:/ siteurl /?p = 47。它們都運行良好,像我有的計數一樣獲得正確的結果,並且在目前的固定鏈接中顯示完全相同的結果。

這兩種類型的固定鏈接現在看起來很匹配,並且規範的URL也是正確的。我可以使用the_permalink()來獲取FB的鏈接,並獲得正確的結果。

我仍然得到一個警告,它是[Circular Redirect Path]。但類似的計數似乎運行良好。所以我會離開它一個星期,留意我的眼睛,看看它是如何工作的。

我會回來的任何進一步的結果。 再次感謝您。

相關問題