想给每篇文章添加二维码图片方便访客手机扫描阅读,但是每次添加文章都要手动制作和上传二维码图片明显会比较麻烦,而且如果更新的文章数量较多,更会影响到效率,因此自动生成二维码图片就显得很重要,实现方法可以通过第三方网站提供的二维码API接口实现,下面博客吧分享通过二维码API接口生成二维码图片并保存在服务器的方法教程。
操作步骤:
1、在当前主题的根目录中创建文件夹qrcode/,并设置权限0777或0755;
2、在当前主题模板的include.php文件中,添加以下函数代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | //by www.boke8.net define( 'ABSPATH', dirname(__FILE__) . '/' ); function boke8_get_qr($article){ global $zbp; $localqr = ABSPATH .'/qrcode/'.$article->ID.'.jpg'; if (!is_file($localqr)) { boke8_set_qr( "http://api.qrserver.com/v1/create-qr-code/?size=200x200&data=".$article->Url ,$article->ID.".jpg"); } } function boke8_set_qr($url,$qrpic){ $path = ABSPATH . 'qrcode'; set_time_limit (10); $destination_folder = $path?$path.'/':''; $localname = $destination_folder .$qrpic; $file = fopen ($url, "rb"); if ($file) { $newf = fopen ($localname, "wb"); if ($newf) while(!feof($file)) { fwrite( $newf, fread($file, 1024 * 2 ), 1024 * 2 ); } } if ($file) { fclose($file); } if ($newf) { fclose($newf); } } |
注:
- 上面代码中使用的是qrserver的API接口,可以自主更换为其它接口;
- 二维码生成的超时限制为10秒,避免api接口问题不能生成导致页面打不开;
- 生成的二维码图片用文章的ID命名。
3、在当前主题template/post-single.php文件中,添加代码:
1 | {boke8_get_qr($article)} |
4、进入网站后台首页,点击[清空缓存并重新编译模板]即可,二维码会在文章的首次访问中自动生成并保存在qrcode/文件夹中。
注:如果页面更换了URL,请到主题的qrcode文件夹中删除二维码图片,重新生成。
靠谱的二维码生成API接口URL:
- http://pan.baidu.com/share/qrcode?w=150&h=150&url=
- http://b.bshare.cn/barCode?site=weixin&url=
- http://s.jiathis.com/qrcode.php?url=
- http://api.qrserver.com/v1/create-qr-code/?size=200×200&data=