php 添加内链插件,emlog自动内链插件,自动给文章内的TAG标签加上站内链接

7c690027f7c93b5271e351f4d78dc0fb.png

注意:这不是KLLER的收费内链插件

公共函数库的插件编写初衷是“将小功能合并到一个插件,方便安装又避免多个插件的效率降低”。

此版本支持功能:

content2keyword() 函数,将正文中出现的 TAG 替换成站内超链接。

本函数需要修改模板;

使用方法:

1、后台上传并启用该插件

2、打开 templates/模板名/echo_log.php

找到类似<?php echo $log_content;?>的地方,改为<?php echo content2keyword($log_content);?>

PS:我不知道为什么emlog没有提供类似的钩子“数据输出前做格式化”,所以需要修改模板(也许是我不懂EMLOG的规则)

作者:HN

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

/*

Plugin Name: 公共函数库

Version: 1.0

Plugin URL:

Description: 计划封装常用的功能,又避免安装多个插件带来的效率低下

Author: HN(QQ:14683667)

Author URL: #

*/

!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('/.*/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 = "".$val['tagname'].'';

$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;

}

本插件并非本站原创,版权归原作者所有。这里只是为了促进学习特此分享。希望大家都能尊重作者的劳动!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值