最简单的调用办法就是直接调用google,代码如下:
- <img src="https://chart.googleapis.com/chart?cht=qr&chs=150x150&choe=UTF-8&chld=L|4&chl=<?php the_permalink(); ?>" width="150" height="150" alt="QR 码"/>
上面的代码中只要修改 150 这个图片大小就好了,代码如下:
<?php the_permalink(); ?>
是自动获得文章链接,如果要生成博客站点的二维码只要替换成博客域名固定链接就可以了,我给改了下,封装成函数,这样图片大小可以改变,不过其实使用起来也不大方便,因为用主题时即使是函数肯定也是写死的,除非结合后台设置二维码图片大小,所以用处不大.
上面方法是直接通过 google 的 api 生成图片,有些地方可能因为网络问题,会很慢,所以小蝴蝶同学在胡长萌的要求下,又做了本地缓存图片的处理
一、functions.php 里加入代码:
- function get_qr($url,$path,$qrpic){
- set_time_limit (10); //设置十秒超时
- $destination_folder = $path?$path.'/':'';
- $localname = $destination_folder .$qrpic;
- $file = fopen ($url, "rb"); //fopen函数的r+模式: 读写方式打开 文件指针指向文件头
- if ($file) {
- $newf = fopen ($localname, "wb"); // w+,读写方式打开 文件指针指向文件头 如果文件不存在则尝试创建之
- if ($newf)
- while(!feof($file)) {
- fwrite( $newf, fread($file, 1024 * 2 ), 1024 * 2 ); //写入文件,fread控制文件最大的大小,这里是2M
- }
- }
- if ($file) {
- fclose($file); //关闭fopen打开的文件
- }
- if ($newf) {
- fclose($newf);
- }
- }
二、在网站根目录建立一个叫qrcode的新文件夹,确保有写入权限
三、以下代码放到需要输出二维码图片的地方,如 single.php,代码如下:
- <?php
- $localqr = ABSPATH .'qrcode/'.get_the_id().'.jpg';
- if (!file_exists($localqr)) {//如果图片已经存在,则不会再次保存
- get_qr( "http://chart.googleapis.com/chart?cht=qr&chs=100x100&choe=UTF-8&chld=L|4&chl=".get_permalink() ,"qrcode", get_the_id().".jpg");//图片名以文章id命名
- }
- ?>
- <img src="<?php echo home_url( '' ); ?>/qrcode/<?php the_id()?>.jpg" width="100" height="100" alt="QR 码"/>
- <!--默认二维码图片大小是100*100,如果要改,需要改4个地方,已经用蓝色标注-->
新闻热点
疑难解答
图片精选