Z-Blog自动添加TAG内部链接插件开发
最近开始接触Z-blog了!
Zblog想做内链,后台有应用中心,但是无奈收费啊!对于我这种粗暴解决问题的人(‘扣’),是要花个几十块一百来块搞个插件么?NO!自己做。
翻ZBLOG的官方Wiki开发手册,这个官方都有,下面就简单介绍一下插件实现流程:
1、插件工作流程简要介绍:
添加文章时候,记得添加“标签”!这里主要获得标签内容,做文章内容替换链接到TAG的聚合页面上。
2、ZBLOG使用操作接口:
Filter_Plugin_Zbp_MakeTemplatetags
3、ZBLOG的插件具体的开发流程可以查阅他们的Wiki手册我就详写了,这里直接贴代码直接一点,plugin.xml这个文件是需要的,跟着Wiki做就好了。
下面是include.php文件:
//注册插件
RegisterPlugin("Inlinks","Inlinks");
//具体接口
function Inlinks(){
Add_Filter_Plugin('Filter_Plugin_Zbp_MakeTemplatetags','davidsinliks');
}
function davidsinliks(&$template){
global $zbp;
//得到域名
$webhost = $zbp->host;
//获取ID
$infoid = GetVarsByDefault('id',$type='GET',$default='test');
//获得ID内容
$c = GetPost((int)$infoid, $option = array('only_article'=>true));
$cotnenttext = $c->Content;
//获取TAG
$db = $zbp->db->sql->get();
$sql = $db->select('zbp_tag')
->column(array(array('tag_ID','log_ID'),array('tag_Name','log_Title'),array('tag_Count','log_Content')))
//->where(array('<=','tag_ID','20'))
->sql;
$array = $zbp->GetListType('Post',$sql);
foreach ($array as $a){
$keyword = $a->Title;
$infoid = $a->ID;
$outlink = "<a href='{$webhost}?tags={$infoid}' target='_self' title='{$keyword}' class='taglink'>{$keyword}</a>";
//echo $outlink;
$b = "/(?=[^>]*(?=<(?!/a>)|$)){$keyword}/i";
//echo $b;
$cotnenttext = preg_replace("/(?=[^>]*(?=<(?!\/a>)|$)){$keyword}/i",$outlink,$cotnenttext,$count=1);
//echo $outlink;
}
//配置了一个全局标签
$template['davidscontent'] = $cotnenttext;
}
结尾工作:
1、将include.php与plugin.xml两个文件打包放在一个文件传到“zb_users/plugin/”下的
2、代码文件比较粗糙,能用就行,(看Wiki 还差几个操作函数)
3、需要在相关文章内容模板内,将内容调用的标签更改为:{$davidscontent},默认的模板文件路径:zb_users\theme\主题名\template\下的"post-single.php"内容页面前端模板
4、默认替换次数 1 次,文章内部存在TAG关键词会自动添加连接指向到该TAG页面
5、修改任何页面都要记得先备份在修改!防止未备份丢失数据或者出错!
实际效果图:
TAGS:zblog , 内链 , 插件
来自Davids zhou博客原创文章请尊重作者:http://www.zongk.com/zongkdown/75.html转载请标注此链接