目前我們的WordPress主題以及小程序內(nèi)置文章推送功能,配置好接口后可自動推送文章到百度站長平臺,小程序的話也支持百度小程序小程序新資源提交
接口以及微信小程序的內(nèi)容接入
API推送接口。
文章推送功能實現(xiàn)原理
目前主題和小程序的文章推送功能實現(xiàn)原理:在新文章發(fā)布后添加一個10秒后的定時任務,然后通過定時任務自動推送到設置過的API接口。
那么為什么會使用定時任務來處理呢?
由于WordPress文章發(fā)布機制,后臺提交數(shù)據(jù)后會優(yōu)先保存文章內(nèi)容,然后再保存其他自定義字段信息,實際測試中我們會發(fā)現(xiàn)在發(fā)布文章的時候就執(zhí)行提交推送操作可能會有部分文章數(shù)據(jù)還沒有及時保存進數(shù)據(jù)庫,或者由于緩存插件還未來得及清理插件緩存,導致提交的數(shù)據(jù)不對,最常見的就是文章鏈接獲取不對,而延遲10秒則基本上可以確認獲取到的文章數(shù)據(jù)都是正確的。
文章推送失敗排查
主題和小程序?qū)τ诿恳淮挝恼峦扑腿蝿斩加腥罩具M行記錄,如果懷疑文章推送不成功,那么一般是建議查看日志文件,日志文件保存在網(wǎng)站上傳目錄的wpcom
目錄里面,按月記錄保存,例如2022年8月的日志文件路徑一般是:
/wp-content/uploads/wpcom/log-202208.log
日志文件每一行都是一條推送記錄,前面是提交時間,然后是提交的地址,最后面是接口返回內(nèi)容。
百度站長平臺
百度站長平臺的記錄時間后面是正常的鏈接地址,一條正常的推送記錄應該是這樣的:
[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
表示剩余提交次數(shù),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默認的上傳路徑,系統(tǒng)默認是
wp-content/uploads
,如果有修改過建議找下修改后的文件夾里面是否有; - 排查
定時任務
的執(zhí)行是否正常,部分網(wǎng)站安裝過插件或者代碼取消了wp的定時任務功能,或者定時任務卡住了等原因?qū)е聼o法正常執(zhí)行,解決辦法:檢查是否有禁用定時任務的插件以及代碼,需要禁用此類功能和代碼,保證定時任務執(zhí)行順暢,也可以安裝插件查看網(wǎng)站現(xiàn)有定時任務執(zhí)行情況,比如:advanced cron manager
,然后進入工具>Cron Manager
,如果列表的右側(cè)Next execution
選項有很多In queue
則表示可能定時任務無法正常執(zhí)行; - 另外建議檢查目錄權(quán)限,是否有寫入權(quán)限,以及寶塔面板是否有防篡改功能導致日志文件無法正常寫入。
2、找不到對應文章的提交日志
如果有日志文件,但是根據(jù)鏈接地址或者文章ID無法找到對應文章的提交記錄,那么建議檢查:
- 文章是否新發(fā)布,修改已有文章不會重復提交;
- 參考上面定時任務排查方法排查定時任務執(zhí)行情況
3、日志提交返回內(nèi)容和本文上面提供的不一樣
如果懂點開發(fā)或者英文的話,可以找關(guān)鍵字看下字面意思,比如是否有success
、OK
,以及errcode
/errno
/code
等字段,為200
/0
/1
一般是正常,為其他值以及errmsg
/msg
字段有其他內(nèi)容也可以試著看看字面意思判斷可能的原因,最后也可以直接提交服務單提供日志返回信息獲取支持。
4、日志文件提交成功,但是后臺剩余提交次數(shù)或者提交記錄沒有變化
此類情況有可能是平臺數(shù)據(jù)緩存,可以過幾分鐘再看下;另外實際售后當中我們也會遇到域名變更了或者小程序變更了,但是主題和小程序配置信息沒有技術(shù)修改的情況,這會導致接口提交正常,但是提交到了之前的域名或者小程序下面,所以建議檢查下接口配置選項是否與當前查看的一致
5、百度抓取出現(xiàn)404或者有301/302跳轉(zhuǎn),是否推送的地址不對導致?
首先此類問題大概率不是主題推送原因?qū)е?,建議檢查是否自己有添加其他推送功能,主題的推送原理正如上面所說,是通過延時10秒提交,所以獲取到的地址肯定不會錯,另外也可以查看提交日志,檢查推送的鏈接地址是否存在問題。