wordpress本身是沒有二維碼功能的,但是我們可以直接使用生成二維碼,下面我來給大家介紹整合WordPress自動生成二維碼代碼.
再自己修改下,使它支持 首頁、分類、標簽、文章和頁面.
1.添加緩存函數到主題的 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);
- }
- }
注:以上代碼是緩存到本地的功能
2.在網站根目錄建立一個叫 qrcode 的新文件夾,確保有寫入權限(755或777),用于保存圖片.
3.將代碼放到需要輸出二維碼圖片的地方,如single.php、sidebar.php 等
實例代碼如下:
- <?php
- if(is_single() || is_page() || is_home() || is_front_page() || is_category() || is_tag()) ://只在文章、頁面、首頁、分類/標簽存檔,才加載下面的代碼
- $imgsize = 150; //二維碼圖片大小
- if (is_single() || is_page()) $imgname = get_the_id();//使用文章/頁面ID命名圖片
- elseif (is_home() || is_front_page()) $imgname = 'home';//首頁使用home命名
- elseif(is_category()) $imgname = 'cat-'.get_query_var('cat');//分類使用cat-ID 命名
- elseif(is_tag()) $imgname = 'tag-'.get_query_var('tag_id');//標簽使用tag-ID 命名
- $localqr = ABSPATH .'qrcode/'.$imgname.'.jpg';
- if (!file_exists($localqr)) {//如果圖片已經存在,則不會再次保存
- get_qr( "http://chart.googleapis.com/chart?cht=qr&chs=".$imgsize."x".$imgsize."&choe=UTF-8&chld=L|2&chl=".get_permalink() ,"qrcode", $imgname.".jpg");
- }
- ?>
- <img src="<?php echo home_url( '' ); ?>/qrcode/<?php echo $imgname ?>.jpg" width="<?php echo $imgsize ?>" height="<?php echo $imgsize ?>" alt="QR Code"/>
- <?php endif; ?>
注:以上代碼是命名和顯示二維碼圖片,添加代碼后,頁面在被第一次訪問就會生成圖片,然后緩存到本地.
新聞熱點
疑難解答
圖片精選