中国电信189.io短地址api接口调用以及与wordpress的整合
作者:matrix 发布时间:2013-08-07 分类:Wordpress 兼容并蓄
api接口:http://d.hhtjim.com/ioapi.php?url=http://www.baidu.com
这里再留个官方的api接口:http://api.189.cn/EMP/shorturl/long2short?access_token=8723a2ce797824056e66cc3091a354711375933538509&app_id=120032470000032374&longurl=https://www.hhtjim.com
参数longurl=就是你需要转换的地址。
申请到了这个api肯定不能浪费,这就琢磨着与WordPress的整合。
由于本人对于php还是小白 ,所以找了很多的函数和方法, 这里留个很有用的做个记录(这代码给LZ折腾惨了 😡 ):
1.函数模板functions.php中添加:
<?php
function ecurl($getur){
$xml = new DOMDocument();
$xml->load('http://api.189.cn/EMP/shorturl/long2short?access_token=13f1efe925d93f1bd1f2f9e2f30883e9&app_id=699556960000031989&longurl='.$getur);
foreach($xml->getElementsByTagName('shorturl') as $shorturl)
$value = $shorturl->firstChild->nodeValue;
echo $value;
}
?>
说明:ecurl()为增加的自定义函数,用来读取api返回的xml值,也就是那短地址。
参考:http://www.jb51.net/article/25853.htm
ecurl($getur)中的参数为变量$getur,是用来读取WordPress的当前页面或者文章的url(下面有介绍)
2.文章页面模板single.php相关位置处中添加自定义函数ecurl()的调用。我这里是显示本文的固定连接 so 在content结束前位置处添加:
本文连接:
<a href="<?php ecurl(wp_get_shortlink( $post->ID ) ); ?> "><?php ecurl(wp_get_shortlink( $post->ID ) ); ?>
注意:ecurl()的参数不能用WordPress的the_permalink()函数,若使用the_permalink()会直接显示文章的原地址,而且ecurl()也无法调用the_permalink()函数作为参数。大致原因网上说是只能读取 没搞懂~
后来无意中找到wordpress短接接函数的调用<?php wp_get_shortlink( $post->ID ); ?> 神奇的解决了问题!
短地址还可以延伸到QR码的显示:
<div id="currentPageCode" style="cursor: pointer; position: fixed; bottom: 30px; left: 10px;"><img style="border: 2px;" width="100" height="100" src="http://api.qrserver.com/v1/create-qr-code/?size=100x100&data=<?php ecurl(wp_get_shortlink( $post->ID ) ); ?>" alt="QR: <?php the_title(); ?>" title="扫描二维码即可访问本页"/></div>
参考:http://www.wjzhb.com/?p=388
中国电信189.io短地址转换API详情:http://open.189.cn/index.php?m=api&c=index&a=show&id=400#6