WordPress 站点微信小程序的常见问题

2018-12-3023:04:11 2 245
摘要

WordPress站点对接微信小程序其实真心不难,最复杂的代码已经是开源代码解决了,我们无非就是准备好服务器和WordPress站点对接就是了,最多需要我们多付出一点儿“细心”即可,其实每个人来求助明月的时候,明月也真心想帮你,可惜上述这些层面明月都没有掌握的情况下,真的是“爱莫能助”,我只能强调“细心”了,最多给大家指明一个方向,这真不是搪塞大家,是真的“有心无力”。

自从「WordPress 企业官网、个人博客微信小程序方案优选推荐」一文发布后,明月收到了很多 WordPress 博客站长们的咨询,出现的问题也是五花八门。明月没有想到会有这么多的问题是明月疏忽了!今天明月就给大家汇总一下 WordPress 站点微信小程序的常见问题,希望可以帮助到大家。

在开始之前,明月要声明一下,那就是 WordPress 站点接入微信小程序涉及服务器、WordPress、小程序开发平台三个层面,三个层面都是一一对应的,缺一不可,大家碰到问题先要自己排查问题出在哪个层面从出问题概率大小依次为:WordPress→服务器→小程序开发平台。

WordPress 层面

WordPress 在 4.4 版本开始推出了 REST API,如果你使用的是最新版本的 WordPress 应该会提供 REST API 的功能。至于 REST API 是什么?要讲清楚估计要写一篇文章了,推荐你看看阮一峰写的:『RESTful API 设计指南』,看完就基本懂了。简单来说 WordPress REST API,就是用浏览器通过 http 的方式访问 WordPress 提供的 REST API 链接 ,可以获取 WordPress 网站的”内容”,这个”内容”是以 json 的格式返回到浏览器。

有关 WordPress REST API 详细的介绍详见链接:https://developer.wordpress.org/rest-api/

REST API 是 WordPress4.4 版本开始提供的功能,不过是以插件的方式提供的,WordPress 4.7 版本后才内置到系统里,如果你的 WordPress 站是 4.7 以前的版本,需要下载 api 插件:https://wordpress.org/plugins/rest-api/

如果是 WordPress 4.7 或更高版本,要想正常访问 api,需要调整满足两个条件:

  • 设置 WordPress 的固定链接(permalink).
  • URL 重写(url rewrite),也就是设置 WordPress 的伪静态。

上述摘录自『守望轩』博客

很多站长们的小程序出现“预览空白”、“网络 404 错误”基本上都是这个 REST API 造成的,原因多是因为 WordPress 主题或者插件里给屏蔽 REST API 了,一般主题、插件为了优化 WordPress 性能都会关闭 API 接口,特别是国产的主题和插件最喜欢干这种事儿了!比如像鸟哥的 Begin 早期版本默认都是关闭“REST API”了,现在最新版的 Begin 主题已经在主题设置里提供了开启和关闭的选项了(如下图所示)!

如果你是 Begin 主题只需要不勾选这个选项即可。至于其他的主题只能你自己在主题代码里找到如下代码并注释掉来解决了:

  1. // 屏蔽 REST API
  2. add_filter('rest_enabled', '__return_false');
  3. add_filter('rest_jsonp_enabled', '__return_false');
  4. // 移除头部 wp-json 标签和 HTTP header 中的 link
  5. remove_action('wp_head', 'rest_output_link_wp_head', 10 );
  6. remove_action('template_redirect', 'rest_output_link_header', 11 );

或者

  1. add_filter( 'rest_authentication_errors', function$access ) {
  2.     return new WP_Error( 'rest_cannot_acess', 'REST API 不再提供访问', array( 'status' => 403 ) );
  3. });

如果找不到上面这些代码,那么就在插件里排查了,比如 WordPress 著名的优化增强插件 「WPJAM Basic 」里就有屏蔽 REST API 功能,大家不要禁用即可,其他插件就需要自己排查了。

总之这个 屏蔽 REST API 是个很普遍的 WordPress 优化措施,主题、插件、自定义代码都有可能会存在,至于如何判断自己 WordPress 站点的 REST API 是否被关闭,一个很简单的实例就是你是否可以正常的通过 WordPress 手机客户端来管理你的 WordPress 博客,如果 REST API 关闭了,WordPress 手机客户端就会出现问题,无法正常使用,比如:不能回复评论、发布文章等等。

最后,WordPress 层面还必须要安装启用 RES API TO MiniProgram 插件,启用后插件设置里的 AppID 和 AppSecret 赋值一定要仔细对应小程序账号后台的 AppID 和 AppSecret 值,多一个空格都不行,切记了!特别是粗心大意的站长们!

服务器层面

WordPress 站点接入小程序其实就是借助小程序的 webView 组件来实现的 WordPress 站点内容小程序内浏览和调用而已,小程序内的浏览请求来自的域名是:servicewechat.com,UA 是:miniProgram;那么知道了这些服务器层面的要求,在服务器的 WAF、防火墙、Nginx 配置里就要避免拦截屏蔽小程序的来源域名和 UA 了。

其它的服务器层面无非也就是站点 HTTPS 以及 CDN 里的 UA 黑白名单、防盗链设置这些会有影响了。还是那句话“具体情况具体对待”,大家多在这里排查一下是比较靠谱的。

小程序开发平台层面

这个层面出问题的概率最低,基本上只要仔细阅读过小程序代码使用说明和代码里的中文注释一般都不会出问题的,出问题都是“粗心大意”造成的,比如:代码里的 downloadFile 合法域名和小程序后台 downloadFile 合法域名是否一致,是否按照要求没有带 HTTPS 前缀等等细节,明月甚至碰到过有站长粗心大意域名字母出错的奇葩故障。在这个层面唯一的要求就是细心,仔细阅读代码注释并理解即可。

总结

WordPress 站点对接微信小程序其实真心不难,最复杂的代码已经是开源代码解决了,我们无非就是准备好服务器和 WordPress 站点对接就是了,最多需要我们多付出一点儿“细心”即可,其实每个人来求助明月的时候,明月也真心想帮你,可惜上述这些层面明月都没有掌握的情况下,真的是“爱莫能助”,我只能强调“细心”了,最多给大家指明一个方向,这真不是搪塞大家,是真的“有心无力”。

历史文章推荐:

  • 打赏明月一下下
  • 多谢您的赞赏!
  • weinxin
  • 本博客小程序
  • 微信内浏览本博客
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  1   博主  1

    • 弥雅尔尔 4

      弥雅来报道,学习了!