前几天写了几篇博客,分享到微信朋友圈时,没有图片,发给朋友也很丑陋。网上看了很多过时的解决方案,什么body后边放一张300*300的图片,什么图片需要jpg格式的,又或者使用已经受限的JS接口,都不能解决问题。于是自己动手参考微信JS-SDK的文档实现了一个,集成到WordPress中也挺好用的(其实微信官方已经提供了PHP的例子,只不过我开始没看到,所以又造了个轮子)。
后来想把这个功能做成WordPress插件,分享出来,大家都能用多好。恰逢周末,于是开始改造,本想很快就能出一版,结果花了很长时间。遇到的几个问题:
1、将微信AppID和AppSecrect保存到option表,查询的时候用get_option函数,所以加载了wp-load.php,可能因为这里边又要加载一大堆东西,而我的数据库性能有点差,导致页面加载时间较长。最后去掉了加载WordPress环境的部分,完全不使用WordPress提供的函数,修改为保存到文件的方式,和微信AccessToken和JsTicket保存到一起,这里参考了微信官方的例子。
2、对线程安全和页面运行机制有点糊涂,PHP的所谓线程安全主要是针对Web Server的,Web Server对请求的处理方式不同而选择不同的PHP版本。PHP的每次请求是相互隔离的,所有的变量都只在每次请求的过程中有效,原生没有针对整个应用程序全局内存缓存(也许是我还没发现),所以缓存一般就是缓存到文件或者外部的缓存程序,另外绝大部分时候也没必要使用锁。由于对这些机制的不了解,导致反反复复改了很多次。
3、虽然之前写过WordPress的插件,但是对插件机制和开发方法不熟悉,现学现卖,要符合官方的规定,也花了不少时间。
问题虽然很多,不过最终都解决了。
目前这个版本功能还比较简单:
1、在WordPress管理后台添加微信AppID和AppSecrect。
2、目前只支持文章页面的微信分享给朋友和朋友圈,还不支持首页、栏目、存档页等的分享。
3、另外由于我使用了W3 Total Cache插件,页面会被缓存,为了防止签名过期,采用了动态生成javascript的方式,所以可以兼容启用了类似缓存插件的情况。
这个插件本着简便的原则,不会提供除了分享之外的功能,并且原则上不需用户显式的去设置分享的内容,尽量使用WordPress的原生数据结构,不增加表和字段。例如对于文章分享:标题为文章标题、图片为文章内容中的第一张图片(如果文章无图,则随机产生一个),内容为文章摘要。
后续将会提供的一些功能包括:
1、显示网站服务器的出口IP,方便添加到微信公众号白名单。
2、支持首页、栏目页、存档页的微信分享。
3、增加对内存缓存的支持。
….
插件目前已经发布到WordPress插件库,您可以通过管理后台安装使用了。
另外源码已经提交到Github,有兴趣的可以看看:
https://github.com/bosima/wechat-page-sharing
欢迎测试反馈。
博主你好,我已经自己解决了,原因是缺少jquery.min.js,可能是我CDN问题。谢谢
插件默认采用wordpress ajax的方式,如果明显感觉慢,可以试试这个版本: https://github.com/bosima/wechat-page-sharing/tree/0.1.0
您好,我使用了这个插件,但是分享到微信时仍然无法显示缩略图和简介,请问是否可以指导一下?非常感谢!
发表评论
相关文章
国内AI资源汇总,AI聊天、AI绘画、AI写作、AI视频、AI设计、AI编程、AI音乐等,国内顺畅访问,无需科学上网。
扫码或点击进入:萤火AI大全
文章分类
最新评论