目前我们的WordPress主题以及小程序内置文章推送功能,配置好接口后可自动推送文章到百度站长平台,小程序的话也支持百度小程序小程序新资源提交
接口以及微信小程序的内容接入
API推送接口。
文章推送功能实现原理
目前主题和小程序的文章推送功能实现原理:在新文章发布后添加一个10秒后的定时任务,然后通过定时任务自动推送到设置过的API接口。
那么为什么会使用定时任务来处理呢?
由于WordPress文章发布机制,后台提交数据后会优先保存文章内容,然后再保存其他自定义字段信息,实际测试中我们会发现在发布文章的时候就执行提交推送操作可能会有部分文章数据还没有及时保存进数据库,或者由于缓存插件还未来得及清理插件缓存,导致提交的数据不对,最常见的就是文章链接获取不对,而延迟10秒则基本上可以确认获取到的文章数据都是正确的。
文章推送失败排查
主题和小程序对于每一次文章推送任务都有日志进行记录,如果怀疑文章推送不成功,那么一般是建议查看日志文件,日志文件保存在网站上传目录的wpcom
目录里面,按月记录保存,例如2022年8月的日志文件路径一般是:
/wp-content/uploads/wpcom/log-202208.log
日志文件每一行都是一条推送记录,前面是提交时间,然后是提交的地址,最后面是接口返回内容。
百度站长平台
百度站长平台的记录时间后面是正常的链接地址,一条正常的推送记录应该是这样的:
[2022-08-11 10:00:53]: https://www.example.com/123.html - {"headers":{},"body":"{\"remain\":2976,\"success\":1}","response":{"code":200,"message":"OK"},"cookies":[],"filename":null,"http_response":{"data":null,"headers":null,"status":null}}
其中remain
表示剩余提交次数,success
为1表示成功,后面的{"code":200,"message":"OK"}
也说明提交是成功的。
百度小程序
百度小程序的记录时间后面是小程序路径加上@swan
,一条正常的推送记录应该是这样的:
[2022-08-11 10:00:47]: /pages/single/index?id=123@swan - {"errno":0,"msg":"success","requestId":"2a20aa54-191c-13ed-bab2-dd50aa6f9ce1","traceId":"2a20aa54-191c-13ed-bab2-dd50aa6f9ce1","timestamp":1660212049909}
其中errno
为0,msg
为success。
微信小程序
微信小程序的记录时间后面是文章ID@weapp
,一条正常的推送记录应该是这样的:
[2022-08-11 10:00:47]: 123@weapp - {"errcode":0,"errmsg":"ok"}
推送成功会返回{"errcode":0,"errmsg":"ok"}
。
常见异常问题排查
1、找不到日志文件
- 建议检查是否通过插件修改过wordpress默认的上传路径,系统默认是
wp-content/uploads
,如果有修改过建议找下修改后的文件夹里面是否有; - 排查
定时任务
的执行是否正常,部分网站安装过插件或者代码取消了wp的定时任务功能,或者定时任务卡住了等原因导致无法正常执行,解决办法:检查是否有禁用定时任务的插件以及代码,需要禁用此类功能和代码,保证定时任务执行顺畅,也可以安装插件查看网站现有定时任务执行情况,比如:advanced cron manager
,然后进入工具>Cron Manager
,如果列表的右侧Next execution
选项有很多In queue
则表示可能定时任务无法正常执行; - 另外建议检查目录权限,是否有写入权限,以及宝塔面板是否有防篡改功能导致日志文件无法正常写入。
2、找不到对应文章的提交日志
如果有日志文件,但是根据链接地址或者文章ID无法找到对应文章的提交记录,那么建议检查:
- 文章是否新发布,修改已有文章不会重复提交;
- 参考上面定时任务排查方法排查定时任务执行情况
3、日志提交返回内容和本文上面提供的不一样
如果懂点开发或者英文的话,可以找关键字看下字面意思,比如是否有success
、OK
,以及errcode
/errno
/code
等字段,为200
/0
/1
一般是正常,为其他值以及errmsg
/msg
字段有其他内容也可以试着看看字面意思判断可能的原因,最后也可以直接提交服务单提供日志返回信息获取支持。
4、日志文件提交成功,但是后台剩余提交次数或者提交记录没有变化
此类情况有可能是平台数据缓存,可以过几分钟再看下;另外实际售后当中我们也会遇到域名变更了或者小程序变更了,但是主题和小程序配置信息没有技术修改的情况,这会导致接口提交正常,但是提交到了之前的域名或者小程序下面,所以建议检查下接口配置选项是否与当前查看的一致
5、百度抓取出现404或者有301/302跳转,是否推送的地址不对导致?
首先此类问题大概率不是主题推送原因导致,建议检查是否自己有添加其他推送功能,主题的推送原理正如上面所说,是通过延时10秒提交,所以获取到的地址肯定不会错,另外也可以查看提交日志,检查推送的链接地址是否存在问题。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家