(我没有足够的声望用链接发帖,所以所有的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重定向,但无法遵循。
所以我每隔几天就要抓一次手册,这非常累人。
任何人都可以给我一个关于如何解决问题的提示和指示? 非常感谢。 不管怎样,谢谢你的时间。
答案 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的链接,并获得正确的结果。
我仍然收到一条警告,即[循环重定向路径]。但到目前为止,类似的数据似乎运行良好。所以我会离开它一个星期,继续关注,看看它是如何工作的。
我会再回来了。 再次感谢你。