ACF将json保存到自定义目录不起作用,而使用默认的acf-json

时间:2019-11-19 作者:joshmoto

我正在使用Advance Custom Fields local json 因此,我可以在不同的环境中同步表单。

请参阅下面的我的函数,在注释中包含var dump输出,以便您可以看到发生了什么。。。

function acf_json_absolute_path ($path) {

    /**

    var_dump($path);

    Array (
        [0] => /sites/joshmoto/subdomains/domain.com/wp-content/themes/werks/acf-json
    )

    */

    $path[0] = get_template_directory() . \'/config/acf-json\';

    /**

    var_dump($path);

    Array (
        [0] => /sites/joshmoto/subdomains/domain.com/wp-content/themes/werks/config/acf-json
    )

    */

    return $path;
}

add_filter(\'acf/settings/save_json\', \'acf_json_absolute_path\');
add_filter(\'acf/settings/load_json\', \'acf_json_absolute_path\');

但每次我保存自定义字段时config/acf-json 文件夹

但如果我创建一个空acf-json 文件夹,并重新保存所有ACF字段组,json文件将在此处创建。

enter image description here

我不明白为什么config/acf-json 路径被忽略并使用默认路径acf-json 地方

有人能帮我理解将json保存/加载到我的config 文件夹位置?

1 个回复
最合适的回答,由SO网友:Kaperto 整理而成

这两个过滤器的输出不相同。你可以测试一下

add_filter(\'acf/json_directory\', function ($path) {
    return get_template_directory() . \'/config/acf-json\';
});


add_filter(\'acf/settings/save_json\', function ($path) {

    return apply_filters("acf/json_directory", NULL);

});

add_filter(\'acf/settings/load_json\', function ($paths) {

    return [
        apply_filters("acf/json_directory", NULL)
    ];

});