emlog自動內(nèi)鏈插件,自動給文章內(nèi)的TAG標簽加上站內(nèi)鏈接

thum-87061480252351.png

注意:這不是KLLER的收費內(nèi)鏈插件

公共函數(shù)庫的插件編寫初衷是“將小功能合并到一個插件,方便安裝又避免多個插件的效率降低”。

此版本支持功能:
content2keyword() 函數(shù),將正文中出現(xiàn)的 TAG 替換成站內(nèi)超鏈接。
本函數(shù)需要修改模板;
使用方法:
1、后臺上傳并啟用該插件
2、打開 templates/模板名/echo_log.php
找到類似<?php echo $log_content;?>的地方,改為<?php echo content2keyword($log_content);?>
PS:我不知道為什么emlog沒有提供類似的鉤子“數(shù)據(jù)輸出前做格式化”,所以需要修改模板(也許是我不懂EMLOG的規(guī)則)
作者:HN
將以下代碼保存為 publicfun.php,放到publicfun文件夾,再打包成ZIP格式,在EMLOG后臺上傳插件并啟用就行了。
<?php
/*
Plugin Name: 公共函數(shù)庫
Version: 1.0
Plugin URL:
Description: 計劃封裝常用的功能,又避免安裝多個插件帶來的效率低下
Author: HN(QQ:14683667)
Author URL: #
*/
!defined('EMLOG_ROOT') && exit('access deined!');

/**
 * content2keyword(): 替換正文中出現(xiàn)的TAG標簽為超鏈接,要求:將 <?php echo $log_content; ?>的地方,改為 <?php echo content2keyword($log_content); ?>
 * 此函數(shù)效率相對較低,但暫時沒有更好方法實現(xiàn),主要是避免 將 a、img 標簽中的 alt、title 等內(nèi)容與TAG重復時的處理
 * @param unknown_type $content
 * @return unknown|mixed
 */
function content2keyword($content){
        global $CACHE;
        $tags = $CACHE->readCache('tags');
        if( !is_array($tags) ){
                return $content;
        }
        
        //避免在鏈接、IMG標簽內(nèi)重復添加,先將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;
}

本插件并非本站原創(chuàng),版權(quán)歸原作者所有。這里只是為了促進學習特此分享。希望大家都能尊重作者的勞動!


轉(zhuǎn)載請注明出處 AE博客|墨淵 ? emlog自動內(nèi)鏈插件,自動給文章內(nèi)的TAG標簽加上站內(nèi)鏈接

發(fā)表評論

路人甲

網(wǎng)友評論(1)

這個內(nèi)鏈是內(nèi)頁友情鏈接嘛?
Latewish 7年前 (2018-05-15) 回復