ACF 覆盖使用 load_value 钩子添加的 HTML 属性
ACF overrides HTML attributes added with load_value hook
我将 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 的问题?
有什么想法吗?
我通过允许帖子中的属性的操作解决了问题
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 与 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 的问题?
有什么想法吗?
我通过允许帖子中的属性的操作解决了问题
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。