You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress图片alt文本字段未过滤双引号导致页面崩溃

解决WordPress图片Alt文本双引号导致页面崩溃的问题

媒体库图片Alt字段处理

用attachment_fields_to_save钩子在保存媒体元数据前过滤双引号,直接修改要存入数据库的Alt文本:

add_filter('attachment_fields_to_save', 'strip_alt_text_double_quotes', 10, 2);
function strip_alt_text_double_quotes($post, $attachment) {
    // 图片Alt文本对应post_excerpt字段
    if (isset($attachment['post_excerpt'])) {
        // 移除双引号,也可以用esc_attr()转义为HTML实体
        $attachment['post_excerpt'] = str_replace('"', '', $attachment['post_excerpt']);
        // 转义写法:$attachment['post_excerpt'] = esc_attr($attachment['post_excerpt']);
    }
    return $attachment;
}

ACF图片字段Alt文本处理

针对ACF的单图/图库字段,用acf/update_value钩子拦截保存操作,过滤Alt文本中的双引号:

add_filter('acf/update_value/type=image', 'filter_acf_image_alt_double_quotes', 10, 3);
function filter_acf_image_alt_double_quotes($value, $post_id, $field) {
    // 处理单个图片字段
    if (is_array($value) && isset($value['alt'])) {
        $value['alt'] = str_replace('"', '', $value['alt']);
    }
    // 处理图库字段(多图片数组)
    elseif (is_array($value)) {
        foreach ($value as &$image) {
            if (isset($image['alt'])) {
                $image['alt'] = str_replace('"', '', $image['alt']);
            }
        }
    }
    return $value;
}

补充说明

  • 不需要借助Ajax,上述Filter钩子都是在数据写入数据库前触发,直接修改待保存的内容。
  • 两种处理方式:直接移除双引号,或者用esc_attr()转义为",转义后Alt文本仍能保留引号语义,同时不会破坏HTML结构。

内容的提问来源于stack exchange,提问作者Giovanni Aceto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 01:09:58