免费分享emlog自动内链插件,自动给日志内的标签加上链接

发布者:乐悠游 发布于:2015-2-27 10:10 Friday 分类:网络技术  百度未收录

乐悠游仅是非营利性的个人业余网站,不存在任何商业目的与商业用途。若您需要使用非免费的软件或服务,您应当购买正版授权并合法使用。如果你下载本站文件,表示您同意只将此文件用于参考、学习使用而非任何其他用途。
全站默认解压密码:www.china-alive.com
乐悠游所有内容均为网络上收集,仅供参考、学习, 请自行判断,采用者由此产生一切后果自负,本站绝不负责!
乐悠游日志比较随意,可能采用简体中文,或采用繁体字甚至粤语书写,若有看不明白,可借助在线翻译:打开试试

本插件是借花借花献佛罢了,本来是想在emlog官方找的,但找到的自动内链插件是收费插件,个人博客收费的就免了。

于是从万能的网络中找来此emlog自动内链插件,相当功能上是比不上官方的收费链插件了,但也足够用。

能够自动将文章中含有已存在的标签和分类自动替换成带链接的标签,

此插件需要小小的动手能力,这个玩博客的应该都具备了。

此版本支持功能:
content2keyword() 函数,将正文中出现的 TAG 替换成站内超链接
本函数需要修改模板;
使用方法:
1、后台上传并启用该插件
2、打开 templates/模板名/echo_log.php
找到<?php echo $log_content;?>的地方,改为<?php echo content2keyword($log_content);?>

将以下代码保存为 publicfun.php,必须使用专用的php编辑器,然后放到publicfun文件夹,再打包成ZIP格式,在EMLOG后台上传插件并启用就行了。

PS:打包时,注意publicfun文件夹不要重复,否则上传后变成publicfun\publicfun,这就是有人说插件不起作用的原因了。



<?php
"
!defined('EMLOG_ROOT') && exit('access deined!');

/**
 * content2keyword(): 替换正文中出现的TAG标签为超链接,要求:将 <?php echo $log_content; ?>的地方,改为 <?php echo content2keyword($log_content); ?>
 * 此函数效率相对较低,但暂时没有更好方法实现,主要是避免 将 a、img 标签中的 alt、title 等内容与TAG重复时的处理
 * @param unknown_type $content
 * @return unknown|mixed
 */
function content2keyword($content){
        global $CACHE;
        $tags = $CACHE->readCache('tags');
        if( !is_array($tags) ){
                return $content;
        }
        
        //避免在链接、IMG标签内重复添加,先将A标签和 IMG标签匹配并保存起来
        preg_match_all('/<([a|img]).*>.*<\/\\1>/Uis', $content, $d);
        if( is_array( $d[0] ) ){
                foreach( $d[0] as $key=>$val ){
                        $flag = "{======{$key}======}";
                        $content = str_replace($val, $flag, $content);
                }
        }
        
        //替换tags链接
        foreach( $tags as $val ){
                $tagurl = "<a title='{$val['tagname']}' href=\"".Url::tag($val['tagurl'])."\">".$val['tagname'].'</a>';
                $content = str_replace( $val['tagname'], $tagurl, $content );
        }
        
        //将之前保存的A、IMG标签,再替换回原样
        if( is_array( $d[0] ) ){
                foreach( $d[0] as $key=>$val ){
                        $flag = "{======{$key}======}";
                        $content = str_replace($flag, $val, $content);
                }
        }
                
        return $content;
}

本文来源于:乐悠游博客,原文地址:http://www.china-alive.com/post-17.html,欢迎转载本站文章,但是请您加上的版权说明!


标签: 内链插件

发表评论:

评论:

0.0
2017-01-24 02:48
站长你告诉我怎么复制?
必发发发
2016-03-21 07:11
看看是什么额
乐悠游个人博客 Powered by emlog
header