帝國CMS釋出資訊時替換正文IMG圖片標籤裡的ALT內容

黄文Rex發表於2024-10-05

要在 EmpireCMS 中實現替換正文 IMG 標籤中的 ALT 內容的功能,可以透過以下步驟進行:

  1. e/class/userfun.php 檔案中增加函式 user_imgalt

  2. 在後臺系統設定中編輯 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 欄位

  1. 登入 EmpireCMS 後臺。
  2. 進入 系統設定 -> 資料表模型 -> 欄位管理
  3. 找到 newstext 欄位並編輯。
  4. 欄位處理 中新增如下處理邏輯:
text
user_imgalt($mid,$f,$isadd,$isq,$value,$cs)

相關文章