Google API 可以非常方便的调用,下边的链接是一个示例:
[btnheart href="http://chart.apis.google.com/chart?cht=qr&chs=150x150&chld=L|2&chl=https://nobb.cc" target="_blank"]我是示例[/btnheart]
参数解释:
1、http://chart.apis.google.com/chart? 调用Google API
2、cht=qr 选择生成类型为 qr 码。
3、chs=150×150 设置二维码图片大小。
4、chld=L|4 L表示默认纠错水平;4表示二维码图片的留白大小,留白的大小也是计算在二维码图片大小内的,可选值为 1~4 的整数。
5、chl=https://nobb.cc为二维码内容。
一般 WordPress 文章页可以使用下边的代码调用二维码,具体自己调节参数。
<img src="http://chart.apis.google.com/chart?cht=qr&chs=150x150&chld=L|2&chl=<?php the_permalink(); ?>" class="qrcode pic" width="150" height="150" alt="qrcode" />
由于 Google 服务器对国内不太稳定,所以我们可以把二维码图片缓存到本地来解决这一缺陷。
首先将下边的代码扔到当前主题的 functions.php 的最后一个 ?>
前。
/*
*Bing - function - 二维码配置
*Form:www.bgbk.org
*/
//二维码缓存
function Bing_qr($url,$path,$qrpic){
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);
}
}
//生成二维码地址
function Bing_echo_qr($imgsize = 150,$echo = true){
$cache = false;
$cache = true;
if(is_single() || is_page()) $imgname = get_the_id();
elseif (is_home() || is_front_page()) $imgname = 'home';
elseif(is_category()) $imgname = 'cat-'.get_query_var('cat');
elseif(is_tag()) $imgname = 'tag-'.get_query_var('tag_id');
if(!is_home()) $permalink = get_permalink();
else $permalink = get_option('home');
if($cache){
$localqr = ABSPATH .'qrcode/'.$imgname.'.jpg';
if(!file_exists($localqr)){
Bing_qr("http://chart.googleapis.com/chart?cht=qr&chs=".$imgsize."x".$imgsize."&choe=UTF-8&chld=L|0&chl=".$permalink ,"qrcode", $imgname.".jpg");
}
$main = get_home_url('').'/qrcode/'.$imgname.'.jpg';
}
else $main = "http://chart.googleapis.com/chart?cht=qr&chs=".$imgsize."x".$imgsize."&choe=UTF-8&chld=L|0&chl=".$permalink;
if($echo) echo $main;
else return $main;
}
//输出二维码
function Bing_echo_qrcode($imgsize = 150){
echo '<img src="'.Bing_echo_qr($imgsize,false).'" class="qrcode" width="'.$imgsize.'" height="'.$imgsize.'" alt="qrcode" />';
}
然后在需要调用二维码的地方使用下边的函数就行了:
<?php if(function_exists('Bing_echo_qrcode')&&function_exists('Bing_echo_qr')&&function_exists('Bing_qr')) Bing_echo_qrcode(150);?>
其中的 150 为二维码大小,可以自己修改。
如果想关闭二维码缓存只需要将第一段代码的 30 行 $cache = true; 注释掉即可。
本文共 268 个字数,平均阅读时长 ≈ 1分钟
评论 (0)