懂的都懂,該功能可以聚合相關文章,由於顯示在正文中間,既可以提升用戶體驗感,又可以達到優化的效果
目前發現部分高權重網站都在使用這個功能,於是我研究了幾個小時,寫了這個教程!
對於網站優化幫助不是丁點,相信網站優化大佬都懂!
這個功能也是一位網站優化大佬給我提出來的,希望對各位站長有幫助!
不管你是採集站,正規文章站,資訊站,還是商品,小說電影站,這個功能都適合,當然,前提是你網站是帝國cms!
效果預覽:

在文章的正中間插入一段相關文章,可以設置文章數量
不需要任何複雜繁瑣的插件,只需要跟着教程做就行!
如果不會,可以聯繫我幫忙安裝
教程步驟:
第一步:安裝代碼
打開/e/class/userfun.php這個文件
將以下PHP函數代碼放入第二行
PHP函數代碼:
🔒 隱藏內容:付費閱讀
function content_more_page($id,$stb,$content,$sign,$num=8,$biao = 'news'){
global $empire,$dbtbpre;
$is = $empire->fetch1("SELECT keyid FROM `phome_ecms_{$biao}_data_{$stb}` WHERE `id` = {$id} ");
if(!empty($is['keyid'])){
$is['keyid'] = rtrim($is['keyid'],",");
$arr_keyid = explode(",",$is['keyid']);
if(count($arr_keyid) > $num){
$rand_keyid = array_rand($arr_keyid,$num);
foreach($rand_keyid as $v){
$more_id.= $arr_keyid[$v].",";
}
$more_id = rtrim($more_id,",");
}else{
$more_id = $is['keyid'];
}
$found_news = $empire->query("SELECT title,titleurl FROM `phome_ecms_{$biao}` WHERE id in({$more_id}) ORDER BY `id` DESC ");
while($j=$empire->fetch($found_news)) //循環獲取查詢記錄
{
$li.="<li class='more_li'><a href='{$j['titleurl']}' title='{$j['title']}'>{$j['title']}</a></li>";
}
$more_this_content = '<ul id="more_ul"><strong>也許對您有幫助</strong>'.$li."</ul>";
return content_center($content,$more_this_content,$sign);
}else{
return $content;
}
}
function content_center($content,$other,$sign){
$y = $content;
$n = floor(substr_count($content,$sign)/2);
for ($i=1;$i<=$n;$i++){
$pos = strpos($content,$sign);
$content = substr($content,$pos+1);
$pos_val=$pos+$pos_val+1;
}
$count = $pos_val-1;
return substr($y,0,$count).$other.substr($y,$count);
}
第二版的PHP代碼:
修復了array_rand函數調用問錯問題。
新增newstime判斷,適合定時發佈文章的網站!
🔒 隱藏內容:付費閱讀
<?php
//---------------------------用戶自定義標籤函數文件
function content_more_page($id,$stb,$content,$sign,$num=8,$biao = 'news'){
global $empire,$dbtbpre;
$is = $empire->fetch1("SELECT keyid FROM `phome_ecms_{$biao}_data_{$stb}` WHERE `id` = {$id} ");
if(!empty($is['keyid'])){
$is['keyid'] = rtrim($is['keyid'],",");
$arr_keyid = explode(",",$is['keyid']);
if(!empty($arr_keyid)){
$num = count($arr_keyid) >= $num ? count($arr_keyid) : $num;
$rand_keyid = array_rand($arr_keyid,$num);
foreach($rand_keyid as $v){
$more_id.= $arr_keyid[$v].",";
}
$more_id = rtrim($more_id,",");
}else{
return $content;
}
$found_news = $empire->query("SELECT title,titleurl FROM `phome_ecms_{$biao}` WHERE id in ({$more_id}) and newstime <= ".time()." ORDER BY `id` DESC ");
while($j=$empire->fetch($found_news)) //循環獲取查詢記錄
{
$shows = !empty($j['title'])?true:false;
$li.="<li class='more_li'><a href='{$j['titleurl']}' title='{$j['title']}'>{$j['title']}</a></li>";
}
$more_this_content = '<ul id="more_ul"><strong>也許對您有幫助</strong>'.$li."</ul>";
if($shows){
return content_center($content,$more_this_content,$sign);
}else{
return $content;
}
}else{
return $content;
}
}
function content_center($content,$other,$sign){
$y = $content;
$n = floor(substr_count($content,$sign)/2);
for ($i=1;$i<=$n;$i++){
$pos = strpos($content,$sign);
$content = substr($content,$pos+1);
$pos_val=$pos+$pos_val+1;
}
$count = $pos_val-1;
return substr($y,0,$count).$other.substr($y,$count);
}
第二步:替換文章模板裏面的調用模板
原本的調用方式爲:[!--newstext--]
現在我們換成這個:
🔒 隱藏內容:付費閱讀
<?=content_more_page($navinfor['id'],$navinfor['stb'],$navinfor['newstext'],'</p>','news')?>
第一個參數是文章id
第二個參數是內容對應的附表id
第三個是新聞內容
第四個是在什麼標籤後面增加(一般無需修改)
第四個是什麼表,一般是news表
第三步:啓用帝國的聚合功能
啓用方式爲圖所示:
需要條件:每篇文章都設置得有關鍵詞,並且每個關鍵詞之間是用英文隔開的,因爲只有這樣帝國的聚合功能才能成功聚合。
如果您的帝國網站沒有設置關鍵詞,但是文章數量又非常的多,那麼您可以聯繫我幫你解決
解決思路:利用分詞API給標題進行分詞(單獨付費)