WordPress用REST API避免微信小程序中数据加载超过长度限制

今天在开发小程序的过程中发现一个旧的项目在加载了几十条文章数据后,就再也无法继续加载了,微信开发工具中报错“invokeWebviewMethod 数据传输长度为 1957855 已经超过最大长度 1048576”
微信小程序中数据加载超过长度限制

这是由于微信小程序规定页面的data对象最大只能装载1M的数据,而我的数据源都是很长的文章,在加载了50篇左右就超过1M了。显然用WordPress默认的REST API格式是无法突破这个瓶颈了。于是就要想办法修改API,在要加载大量文章的列表页中,把文章正文内容去掉,就能减少90%的数据量,反正列表页也不需要显示正文;只在文章详细页上加载当前文章的所有数据。

首先是去掉默认API的文章详细内容,并且删除掉一些觉得没用的字段: 查看详细 »

微信内H5页面分享接口以及微信登录接口在服务号内的设置

几个月前公众号后台做过一系列更新,很多设置的位置都调整了。这里重新整理一下微信服务号如何开通H5页面的分享以及登录接口(OAuth2.0网页受权获取用户基本信息)设置:

1. 登录服务号后台。

2. 在左侧菜单中找到“公众号设置”,进入“功能设置”。
在“JS接口安全域名”和“网页授权域名”中设置H5页面所在的域名
在左侧菜单中找到“公众号设置”,进入“功能设置”
查看详细 »

解决Retina屏幕的MAC上Photoshop显示比例过小的问题

最近发现老婆大人出的网页设计稿虽然设计风格仍然是一流的,但字体和按钮都做得偏大,在我开发页面的时候造成了一定的困扰。看了一下她的MAC屏幕才知道原来每次用Photoshop CC 2015做设计都要把图片放大了做,再缩小了看全局,导致习惯性地会把文字做大一些以免用户看不清,显然这个显示方式导致了一些尺寸上的感知偏差,而且这样反复放大缩小也很浪费精力…

我们希望的PS显示界面是这样的:
Retina屏幕的MAC上Photoshop显示比例过小的问题
查看详细 »

解决阿里云用LNMP在某些时候FTP无法使用的问题

今天在咖啡厅办公,发现一台在家里和公司都能正常使用的阿里云主机无法用FTP列目录了,当然上传文件也是不能了,其症状是可以正常登录,但到了列目录的时候就卡住:
解决阿里云用LNMP在某些时候FTP无法使用的问题

碰到这种服务器问题还是只能采用搜索大法,先去LNMP论坛兜了一圈,大致可以确认的是防火墙问题,建议开放端口20000-30000,然后换成被动模式登录。
开放端口命令:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 20000:30000 -j ACCEPT

照做后发现能列出根目录,但要进入任何子目录后FTP又卡住了,感觉是不是还有另外一道无形的墙把我阻隔了?突然灵光一现,记得阿里云后台有个安全组和iptables有着差不多的作用,那边还没有开放这个端口段,可以一试 查看详细 »

正则表达式学习笔记

做项目的时候,正则表达式其实用得很少,而且大部分用得到的正则表达式都可以通过搜索引擎找到。因此这么多年来虽然已经多次研读正则表达式的文档,但偶尔要自己写的时候还是会脑子卡壳,求助谷歌…
好吧,再好好的理解一下,做个笔记,争取减少求助搜索引擎的次数。本文并非系统整理正则表达式的概念,而是加强巩固自己淡忘的一些概念和知识点。

正则表达式通过构造函数使用方法

var str = "He is a boy. She is not a boy."
var reg = new RegExp("\\bis\\b");
str.replace(reg, "IS");
//"He IS a boy. She is not a boy."
var reg = new RegExp("\\bis\\b" , 'g');
str.replace(reg, "IS");
//"He IS a boy. She IS not a boy."
 
//另一种写法:正则表达式前后用/包含,g参数加在最后
str.replace(/\bis\b/g, "IS");

查看详细 »

微信小程序中使用地图和定位的一些坑和经验

首先,经过测试,使用GCJ02(火星坐标)比WGS84(GPS)的坐标在计算距离的时候更为精确。在微信小程序中使用内置接口获取用户坐标,代码放在app.js里:

App({
  getLocation: function () {
    var that = this
    wx.getLocation({
      //type: 'wgs84',
      type: 'gcj02',
      success: function (res) {
        that.globalData.latitude = res.latitude
        that.globalData.longitude = res.longitude
        //var speed = res.speed
        //var accuracy = res.accuracy
      }
    })
  }
 
})

查看详细 »

一次解决LNMP主机反复宕机问题的记录

新购的一台阿里云主机,几乎每天都会发生MySQL自动停止服务。主机其他部分看来运行都正常,怀疑是哪里设置的不对,但我装完这台LNMP改的默认设置不多,之前也并没有碰到过类似的问题。既然是MySQL停止服务,那么就从MySQL这里找问题,搜索了一个多小时,发现MySQL宕机有很多可能性,一时无法确定。但解决此类问题的关键都是查看错误日志开始。

命令行进入本地MySQL,之后输入密码

mysql -hlocalhost -uroot -p

之后进入提示符mysql>

查看错误日志的位置

mysql> show variables like '%log_error%';

此时获取到了文件位置。查看日志后,发现大部分重复片段是这样的:

2017-07-26 04:34:03 7617 [Note] Plugin 'FEDERATED' is disabled.
2017-07-26 04:34:03 7617 [Note] InnoDB: Using atomics to ref count buffer pool pages
2017-07-26 04:34:03 7617 [Note] InnoDB: The InnoDB memory heap is disabled
2017-07-26 04:34:03 7617 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-07-26 04:34:03 7617 [Note] InnoDB: Memory barrier is not used
2017-07-26 04:34:03 7617 [Note] InnoDB: Compressed tables use zlib 1.2.3
2017-07-26 04:34:03 7617 [Note] InnoDB: Using CPU crc32 instructions
2017-07-26 04:34:03 7617 [Note] InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
2017-07-26 04:34:03 7617 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2017-07-26 04:34:03 7617 [ERROR] Plugin 'InnoDB' init function returned error.
2017-07-26 04:34:03 7617 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2017-07-26 04:34:03 7617 [ERROR] Unknown/unsupported storage engine: InnoDB
2017-07-26 04:34:03 7617 [ERROR] Aborting

查看详细 »

WooCommerce的虚拟物品订单付款后自动处理订单状态

这应该是一个比较常见的功能需求了,虚拟物品由于不需要进行送货,用户付款后即可算作订单完成,以便网站统计订单后进行更多操作,用户也可能籍此获得一些其他的优惠或者权益。这一切都需要前一个订单在没有人工干预的状态下自动完成。

首先,官方文档中给出了直接完成订单的代码:

1
2
3
4
5
6
7
8
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order');
function custom_woocommerce_auto_complete_order( $order_id ) {
     if ( ! $order_id ) {
         return;
     }
     $order = wc_get_order( $order_id );
     $order->update_status( 'completed' );
}

查看详细 »

七牛CDN防盗链开启后,微信小程序无法加载其资源问题解决

最近在学习开发微信小程序的时候碰到了形形色色的问题,待我有空多整理一些笔记,这次先记录一个简单的。我习惯用七牛CDN作为自己开发的网站静态资源存储分发,并且为每个资源库设置防盗链白名单。在开发小程序之初,我就已经把这两个域名加入到了白名单中:
*.qq.com
*.wechat.com
因此就想当然的以为这样设置,微信小程序读取CND资源就不会有问题。当然,我在开发过程中为了避免碰到这样那样的问题,是先关闭了防盗链的。小程序完成后提交审核,同时我顺手打开了防盗链,刷一下小程序,结果发现所有云上的图片都打不开,开发工具报403错误:
微信小程序无法加载七牛CDN资源问题
查看详细 »

创业公司预算不高,要做网站,找什么样的人最好?

经常听到有人会讨论这类问题 – 作为一家创业公司,没有专人做网站,应该找什么样的人外包网站建设?

一家公司决定要建网站时,他们一般会有这3种选择:

  1. 找建站平台生成网站,自己维护或者购买平台的维护服务
  2. 找广告公司/建站公司服务
  3. 找自由职业的个人或小团队建站

创业公司预算不高,要做网站,找什么样的人最好?
下面我来分析以上各选项的利弊 查看详细 »

第 1 页,共 10 页12345...10...最旧 »