WordPress推送非文章页面问题排查

果果推送

记一次wordpress排障。

我一直在用“果果推送”这个插件,来向百度和bing推送url链接。直到去年我偶然发现推送的链接里头经常会包含wordpress模板和一些非文章的链接。而这些模板很明显是无法通过http直接访问的,所以你照着这个链接进去,它只会显示404。

本来bing的配额就十分宝贵。很久之前我也有200配额。直到我膝盖中箭后有段时间没更文章,我的url提交配额就又掉回了100。而且模板数量上来之后,提交的这种‘无用“链接也会越来越多。

最近刚好有时间捣腾wordpress,就抽了点时间来看看问题到底出在哪。首先肯定是看看wordpress数据库,看看是不是把模板误标识成了文章类型,导致插件提交错误。

wordpress用的mysql,文章存在wp_posts表里面,那就直接输入

SQL
use wordpress;
SELECT * FROM wp_posts LIMIT 1;

可以看到wp_posts表的字段。post_type肯定是我们最需要关注的那个。那么接下来看看post_type到底有哪些值。

可以看到除了文章类型”post“以外,还有文章保存时自动保存的修订版本”revision“,Wordpress页面”page“,以及wordpress模板和一些wordpress插件自定义的类型。

那我们看看上面的code_suggest的类型到底是什么。假设我不知道文章名字的格式是什么,那么这里最好还是用通配符。

SQL
SELECT post_name,post_type FROM wp_posts WHERE post_name LIKE '%code_suggest%';

可以看到它很明显的是”区块“类型的posts。很明显,问题不在我自己的wordpress数据库。而在于插件在SELECT的时候没有在WHERE中加上”post_type = xxxx”的筛选条件。

我也不知道为什么果果推送的”仅推送文章类型“设置没有生效。但至少有了解决问题的思路——修改插件的SQL查询。果果推送推送文章的代码在ggpush/class-ggpush-api.php中已有记载。那直接在get_post_data的sql中,加上一条and post_type = \’post\’即可。如果你想把页面也推送上去,那就用IN再加上个page。反正修改sql非常灵活,改出自己想要的效果即可。

保存之后静待提交链接。终于,在一年之后,URL推送会推送非文章链接的问题终于解决了。可喜可贺,可喜可贺。

Subscribe
提醒
0 评论
Inline Feedbacks
View all comments
0
在此留下你的评论x