更改我的wordpress永久链接后,我的Facebook就像错了

时间:2016-08-20 09:32:26

标签: wordpress facebook facebook-like permalinks

(我没有足够的声望用链接发帖,所以所有的http://都是http:/)

我已将我的wordpress永久链接从http:/ siteurl /?p = number更改为http:/ siteurl / number / slug

我在标题中添加一个代码,告诉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 }  
      } 
?> 

使用“共享调试器”工具进行抓取后,效果不错,但 暂时

抓取后,Fetched URL,Canonical URL和og:url都可以,如下所示。

  

获取网址http:/ siteurl / 47 / travel-seoul-running

     

Canonical URL http:/ siteurl /?p = 47

     

meta property = og:url content = http:/ siteurl /?p = 47

但显示警告如下

  

[循环重定向路径]    检测到循环重定向路径(有关详细信息,请参阅“重定向路径”部分)。

     

[Mismatch og:url和canonical url]   og:标题中的url标记与html中的rel ='canonical'链接不同。

     

[解析器不匹配的元数据]   解析器的元数据结果与输入元数据不匹配。可能,这是由于数据以意外方式排序,为属性提供的多个值仅期望单个值,或者给定属性的属性值不匹配。以下是在解析结果中未显示的输入属性:'og:locale:locale'

几天之后,fb类似计数将突然变为零。我使用共享调试器工具进行检查,它显示Canonical URL出错,但og:url仍然正确。

  

获取网址http:/ siteurl / 47 / travel-seoul-running

     

Canonical URL http:/ siteurl / 47 / travel-seoul-running

     

meta property = og:url content = http:/ siteurl /?p = 47

还会弹出如下警告

  

[无法关注重定向路径]   使用来自http:/ siteurl /?p = 47的数据,因为重定向路径后面有错误。

     

[循环重定向路径]   检测到循环重定向路径(有关详细信息,请参阅“重定向路径”部分)。

     

[无法关注重定向]   URL请求了HTTP重定向,但无法遵循。

所以我每隔几天就要抓一次手册,这非常累人。

任何人都可以给我一个关于如何解决问题的提示和指示? 非常感谢。 不管怎样,谢谢你的时间。

2 个答案:

答案 0 :(得分:0)

你有点倒退。规范和og:url都需要指向当前版本的URL,否则您将收到错误。如果这些内容与他们所处的页面不匹配,他们会去获取这些标记中引用的链接。

所以你实际上是在告诉Facebook去取旧版本的链接。一旦他们去获取该版本,服务器就会将301重定向发送回新版本的链接。新的引用旧的,它会创建一个无限循环或为其刮刀来回重定向。

不幸的是,对于大多数社交网络,包括Facebook,一旦你更改固定链接设置,你就会失去你的份额,因为Facebook现在将其视为一个全新的链接。

解决这个问题的唯一方法是创建自己的共享按钮,并使用Facebook的API来请求共享计数。通过API请求这些计数时,您必须发送两个请求,每个版本对应一个链接,然后在显示它们之前将它们一起添加。

答案 1 :(得分:0)

感谢您的回答,Nicholas和CBroe。您让我注意到问题应该由规范和重定向网址引起。

我回去查看浏览器中的html代码,发现机身中还有另一个规范网址,只能抓住“http:/ siteurl / number / slug”中的永久链接,我不知道它来自哪个wordpress文件。

另外,我想是的 当我进入http:/ siteurl /?p = 47时,我被引导到http:/ siteurl / 47 / travel-seoul-running。这只是因为wordpress自己猜测了最近的地址。这不是真正的重定向。

所以我做的是,我安装了两个插件“Canonical Seo Wordpress Plugin”和“Redirection”。 (我知道插件不是一个好方法。但这是我看到问题如何解决的即时方式。)

“Canonical Seo Wordpress插件”帮助我删除了我不想要的现存Canonical url。我可以在帖子编辑页面中为每个帖子设置我想要的Canonical网址。 (但是我的所有帖子也花了很长时间。)

我还为每个旧帖子设置301重定向,使用http:/ siteurl /?p = number,使用“重定向”插件将其设置为http:/ siteurl / number / slug。

我将标题中的代码更改为

background.axd

我把FB放在盒子里的地方是

<?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 }  
      } 
?> 

我使用Sharing Debugger工具检查http:/ siteurl / 47 / travel-seoul-running和http:/ siteurl /?p = 47。他们都运行良好,得到了正确的数字,并且到目前为止两者都显示了完全相同的结果。

这两种永久链接看起来很匹配,而且Canonical URL也是正确的。我可以使用the_permalink()来捕获到FB的链接,并获得正确的结果。

我仍然收到一条警告,即[循环重定向路径]。但到目前为止,类似的数据似乎运行良好。所以我会离开它一个星期,继续关注,看看它是如何工作的。

我会再回来了。 再次感谢你。