如何通过ACF load_field过滤器自定义WYSIWYG字段包装器宽度?
解决ACF WYSIWYG字段自定义宽度无效的问题
核心问题分析
你当前的代码存在关键疏漏:自定义过滤器函数没有返回修改后的字段配置数组。ACF的acf/load_field/type=xxx系列过滤器要求必须返回处理后的字段数组,否则系统会忽略你的修改,沿用原始配置。
你提到图片字段生效可能是偶然情况,实际上那段代码也存在同样的问题,建议一并修正。
修正后的代码
图片字段(补全返回逻辑)
function acf_image_width($image_width) { $i_width = '40'; if(empty($image_width['wrapper']['width'])) { $image_width['wrapper']['width'] = $i_width; } // 必须返回修改后的字段数组 return $image_width; } add_filter('acf/load_field/type=image','acf_image_width', 10);
WYSIWYG字段(修正后)
function acf_wysiwyg_width($content_width) { $c_width = '60'; if(empty($content_width['wrapper']['width'])) { $content_width['wrapper']['width'] = $c_width; } // 必须返回修改后的字段数组 return $content_width; } add_filter('acf/load_field/type=wysiwyg','acf_wysiwyg_width', 10);
补充说明
- WYSIWYG字段的类型标识
wysiwyg是完全正确的,不需要更换其他类型名称。 acf_the_content是用于处理文章内容显示的过滤器,和ACF字段的后台配置无关,不用在这个场景下使用。
内容的提问来源于stack exchange,提问作者EdgarAlexPoe
相关产品推荐
相关产品推荐

