首頁 > CMS教程 > DEDECMS > 主體

dedecms如何在列表頁呼叫body內容字段

藏色散人
發布: 2019-12-14 09:58:21
原創
2007 人瀏覽過

dedecms如何在列表頁呼叫body內容字段

dedecms如何在清單頁呼叫body內容欄位?

我們都知道description的優化和seo也是息息相關的,對於seo新手來說往往沒有這一方面的經驗,不寫description可能效果更好,但是不寫description會出現一個問題,那就是無法在文章列表頁調出文章的簡介。

推薦學習:織夢cms

例如下列程式碼:

{dede:list pagesize='10'}
  
[field:title/]
  
[field:description/]...
  
作者:[field:writer/]
  
发表于:[field:pubdate function="GetDateTimeMK(@me)"/] 评论:[field:scores/] 点击:[field:click/]
  
{/dede:list}
登入後複製

因為沒寫description這時候文章簡介就會顯示空白,嚴重影響了頁面的美觀和功用性。

以下是我的一些解決方法。

我們可以用截取文章前100個字當文章簡介,這裡要組合使用用兩個函數cn_substr和html2text,對文章轉義後截取。測試程式碼:[field:body function="cn_substr(html2text(@me),200)"/],結果發現還是不行,因為body和description不在同一張表裡。所以只好從程式上入手了。

開啟include檔案下extend.func.php新增以下程式碼: 

//获取单篇文档body
function GetOneArchiveBody($aid,$length)
{
global $dsql;
$aid = trim(ereg_replace('[^0-9]','',$aid));
$body = '';
$query = " Select art.body From `dede_addonarticle` art, `dede_archives` arc where art.aid='$aid' and art.aid=arc.id ";
$arcRow = $dsql->GetOne($query);
if(!is_array($arcRow)) {
return $body;
}
  
if(isset($arcRow['body'])) {
  
$body = cn_substr(html2text($arcRow['body']),$length);
  
}
  
return $body;
  
}
登入後複製

在前台範本呼叫:

{dede:list pagesize='10'}
  
[field:title/]
  
[field:id function="GetOneArchiveBody(@me,200)"/]...
  
作者:[field:writer/]
  
发表于:[field:pubdate function="GetDateTimeMK(@me)"/] 评论:[field:scores/] 点击:[field:click/]
  
{/dede:list}
登入後複製

以上是dedecms如何在列表頁呼叫body內容字段的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板