首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHPCMS 推薦位調用自定義字段完整解決方案

     編輯:PHP 相關知識

PHPCMS 預設推薦位標籤 {pc:content action="position"} 無法直接調用模型自定義字段,需經過後台字段設定與內容更新才能生效。本文提供完整配置流程與代碼範例。

問題現象

{pc:content action="position" posid="30" catid="24" order="listorder DESC" num="4"}
{loop $data $n $r}
    {$r["kk_date"]}  {# 自定義字段無法顯示,輸出空白 #}
{/loop}
{/pc}

標籤參數說明

參數說明
action="position"內容推薦位列表模式
posid="30"推薦位 ID
catid="24"欄目 ID(可選,限定欄目)
order="listorder DESC"排序方式
num="4"顯示筆數

完整解決步驟

步驟 1:後台模型字段設定

  1. 登入 PHPCMS 後台
  2. 進入「內容」 → 「內容相關設定」 → 「模型管理」
  3. 找到對應模型(如「文章模型」),點擊「字段管理」
  4. 找到需顯示的自定義字段(如 kk_date),點擊「修改」
  5. 關鍵設定:「在推薦位標籤中調用」選擇「是」
  6. 提交保存

步驟 2:更新相關內容

  1. 進入對應欄目內容列表
  2. 對需要顯示的文章點擊「修改」
  3. 不需更改內容,直接點擊「提交」重新生成緩存
  4. 或使用「批量更新」功能一次處理多篇文章

步驟 3:更新全站緩存

後台「擴展」 → 「緩存管理」 → 「更新全站緩存」

完整調用代碼範例

{pc:content action="position" posid="30" catid="24" order="listorder DESC" num="4" cache="3600"}
{loop $data $r}
    <div class="recommend-item">
        <h3><a href="{$r[url]}" target="_blank"{$r[title]}</a></h3>
        <span class="custom-date">{$r[kk_date]}</span>  {# 現在可以正常顯示 #}
        <p>{$r[description]}</p>
    </div>
{/loop}
{/pc}

常見問題排查

現象可能原因解決方法
字段仍顯示空白未勾選「在推薦位標籤中調用」按步驟 1 設定字段屬性
新文章正常,舊文章無效舊文章緩存未更新按步驟 2 重新編輯提交舊文章
前台顯示舊資料緩存未清理按步驟 3 更新全站緩存
推薦位不顯示任何內容posid 錯誤或推薦位無內容確認推薦位 ID 及已推薦內容

進階技巧:不修改核心檔案擴展字段支援

若不想逐個字段設定,可修改模型類檔案(需評估升級影響):

<?php
// phpucms/modules/content/classes/content_tag.class.php
// 在 position 標籤處理邏輯中,移除字段過濾限制
// 具體位置視版本而異,建議優先使用後台設定方式
?>

最佳實踐建議

  • 規劃自定義字段時,預先勾選「推薦位調用」選項
  • 批量匯入內容後,務必執行「更新全站緩存」
  • 推薦位標籤加上 cache="3600" 參數啟用標籤緩存,減少資料庫查詢
  • 大量資料時考慮使用 pagesize 分頁而非一次性載入
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved