ACF 覆盖使用 load_value 挂钩添加的 HTML 属性
Posted
技术标签:
【中文标题】ACF 覆盖使用 load_value 挂钩添加的 HTML 属性【英文标题】:ACF overrides HTML attributes added with load_value hook 【发布时间】:2019-12-22 00:04:03 【问题描述】:我将 ACF 与 ACF Hook acf/load_value 一起使用以将自定义 html 包装器添加到 ACF 值。然后我使用 ACF 构建 Elementor 模板(我使用的是 Elementor PRO)。 模板有效并且 ACF 的值被渲染,但我在包装器中添加的属性消失了
我尝试更改过滤器的优先级,但这不是问题。我也尝试查看 ACF 设置,但似乎我无法仅更改某些设置来更改此行为。
这是我做的过滤器
if (!function_exists('my_acf_span_property'))
function my_acf_span_property($value, $property)
$value = '<span property="' . $property . '">' . $value . '</span>';
return $value;
if (!function_exists('my_acf_industry_value'))
function my_acf_industry_value($value)
return my_acf_span_property($value, 'industry');
add_filter('acf/format_value/name=industry', 'my_acf_industry_value');
我为每个需要更改的 ACF 制作了一个过滤器,这只是一个示例。
我尝试在函数my_acf_span_property
中调试将return $value;
更改为return htmlentities($value);
的过滤器,并将属性呈现在前端。
预期输出为<span property="industry">ACF value</span>
但是呈现的是<span>ACF value</span>
可能是 Elementor 的问题?
有什么想法吗?
【问题讨论】:
【参考方案1】:我通过一个动作解决了帖子中的属性
if (!function_exists('allow_property_attribute'))
function allow_property_attribute()
global $allowedposttags, $allowedtags;
$newattribute = "property";
$allowedposttags["span"][$newattribute] = true;
$allowedtags["span"][$newattribute] = true;
$allowedposttags["div"][$newattribute] = true;
$allowedtags["div"][$newattribute] = true;
$allowedposttags["p"][$newattribute] = true;
$allowedtags["p"][$newattribute] = true;
add_action( 'init', 'allow_property_attribute' );
看来是 WordPress 是我的问题,而不是 Elementor 或 ACF。
【讨论】:
以上是关于ACF 覆盖使用 load_value 挂钩添加的 HTML 属性的主要内容,如果未能解决你的问题,请参考以下文章
通过覆盖“检测到 CI,跳过 Git 挂钩安装”在 Jenkins 管道作业中安装 husky git 挂钩