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" | 顯示筆數 |
kk_date),點擊「修改」後台「擴展」 → 「緩存管理」 → 「更新全站緩存」
{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 分頁而非一次性載入