最近测试了一下我的微信公众号“多彩阳新”发现由本博客自动返回的链接挂了,关于这个问题我们经过排查,发现在自动回复的链接中,给加上了&subscene=131 的后缀,导致链接错误。
微信公众号私自改变了正常的链接地址,这里以本文地址举例说明为何在公众号中点开文章会出现 404 错误提示。
正常链接地址:
http://www.likaiwen.com/12123.html
经过微信公众号后的地址:
http://www.likaiwen.com/12123.html&subscene=131
正是因为被腾讯修改了网址,才导致 WordPress 微信机器人插件的自动回复功能出现 404 错误提示,目前还不清楚在那些场景会被腾讯修改链接。
WordPress 微信机器人自动回复 404 错误解决方案如下:
编辑插件的 weixinpress 文件,找到:
$items = $items . $this->get_item($title, $excerpt, $thumb, $link);
在最后一个$link 后面加上“."?"”,变成:
$items = $items . $this->get_item($title, $excerpt, $thumb, $link."?");
再找到:
$items = $items . $this->get_item('「点击本条图文,获取更多文章」', '「点击本条图文,获取更多文章」', WXP_URL.'/mo.png', $this->get_site_url());
同样在后面位置加上“."?"”,变成:
$items = $items . $this->get_item('「点击本条图文,获取更多文章」', '「点击本条图文,获取更多文章」', WXP_URL.'/mo.png', $this->get_site_url()."?");
解决办法的原理是在正常链接后面加上一个英文的问号,根据相关规范链接中问号后面的部分是不会被浏览器识别的,这样就可以使链接中被腾讯添加的部分不会生效,从而解决链接打不开的问题。