wordpressプラグイン改造メモ:Simple QR Code Generator Widget
QRコードを表示するためのプラグイン Simple QR Code Generator Widget を改造。
- URIが指定されていないときは、トップページではなく、現在表示しているページのURLを使う
- Google Chart APIではなく、Pear Image_QRCode ライブラリを使う
- イメージへのリンクではなく、Data URIを使う
- 副作用として大きさの指定はできなくなる
パッチ
[code lang="php"]
diff -u qrCode.php.old qrCode.php
— qrCode.php.old 2017-08-17 08:05:49.102785149 +0900
+++ qrCode.php 2017-08-17 08:06:24.967806366 +0900
@@ -9,6 +9,8 @@
Docs: http://code.google.com/apis/chart/infographics/docs/qr_codes.html
*/
+require_once '/usr/share/pear/Image/QRCode.php’;
+
function qrCodeGenerator(
$width = '100’,
$height = '100’,
@@ -17,20 +19,21 @@
$title = get_the_title();
if(empty($uri)){
– $title = get_bloginfo('name’);
– $uri = get_bloginfo('url’);
+ if(is_home()){
+ $title = get_bloginfo('name’);
+ $uri = get_bloginfo('url’);
+ }else{
+ $title = get_the_title(); #get_bloginfo('name’);
+ $uri = get_the_permalink(); # get_bloginfo('url’);
+ }
}
–
– echo sprintf(
– '<img src="//chart.apis.google.com/chart?cht=%1$s&chs=%2$dx%3$d&chl=%4$s&choe=%5$s" alt="%6$s" />’,
– 'qr’,
– (int) $width,
– (int) $height,
– htmlspecialchars($uri),
– 'UTF-8’,
– htmlspecialchars($title)
– );
–
+ $qrcode = new Image_QRCode();
+ $img = $qrcode->makeCode($uri,array('image_type’=>’png’,’error_correct’=>’H’,’output_type’=>’return’));
+ ob_start();
+ imagepng($img);
+ $base64=base64_encode(ob_get_contents());
+ ob_end_clean();
+ echo sprintf('<img src="data:image/png;base64,%s">’,$base64);
}
function qrCode_widget($args) {
[/code]
ディスカッション
コメント一覧
まだ、コメントがありません