ACF会覆盖通过load_value挂钩添加的HTML属性

时间:2019-08-15 14:48:18

标签: html wordpress advanced-custom-fields elementor

我正在使用ACF和ACF挂钩acf/load_value来向ACF值添加自定义HTML包装器。然后,我使用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都做了一个过滤器,这只是一个例子。

我尝试调试在功能return $value;中将return htmlentities($value);更改为my_acf_span_property的过滤器,并将属性呈现在前端。

预期输出为<span property="industry">ACF value</span> 但是wat呈现为<span>ACF value</span>

可能是Elementor问题?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我解决了一个允许帖子中包含属性的动作

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。