要在 EmpireCMS 中實現替換正文 IMG 標籤中的 ALT 內容的功能,可以透過以下步驟進行:
-
在
e/class/userfun.php
檔案中增加函式user_imgalt
。 -
在後臺系統設定中編輯
newstext
欄位,新增相應的處理邏輯。
步驟 1:在 e/class/userfun.php
檔案中增加函式 user_imgalt
開啟 e/class/userfun.php
檔案,在合適的位置新增以下函式:
// 替換正文 IMG 標籤中的 ALT 內容
function user_imgalt($mid, $f, $isadd, $isq, $value, $cs) {
// 獲取文章標題
$title = $_POST['title'];
// 獲取 HTML 內容
$htmls = $value;
// 匹配所有的 <img> 標籤
$pattern = '/<img[^>]+>/';
preg_match_all($pattern, $htmls, $matches);
// 遍歷匹配到的 <img> 標籤
for ($i = 0; $i < count($matches[0]); $i++) {
// 匹配 <img> 標籤中的 alt 屬性
preg_match_all('/alt=[\'"](.+?)[\'"]/i', $matches[0][$i], $altimg);
// 判斷是否有 alt 屬性
if (empty($altimg[1])) {
// 如果沒有 alt 屬性,則新增文章標題作為 alt 屬性
$htmls = str_replace($matches[0][$i], '<img' . substr($matches[0][$i], 4) . ' alt="' . htmlspecialchars($title) . '"', $htmls);
}
}
return $htmls;
}
步驟 2:在後臺系統設定中編輯 newstext
欄位
- 登入 EmpireCMS 後臺。
- 進入 系統設定 -> 資料表模型 -> 欄位管理。
- 找到
newstext
欄位並編輯。 - 在 欄位處理 中新增如下處理邏輯:
text
user_imgalt($mid,$f,$isadd,$isq,$value,$cs)