Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否有任何方法可以将acf字段与自定义post类型(媒体附件)标记同步_Php_Wordpress_Advanced Custom Fields - Fatal编程技术网

Php 是否有任何方法可以将acf字段与自定义post类型(媒体附件)标记同步

Php 是否有任何方法可以将acf字段与自定义post类型(媒体附件)标记同步,php,wordpress,advanced-custom-fields,Php,Wordpress,Advanced Custom Fields,我在WordPress附件中添加了attachment\u标签taxonomy 现在,我希望它与acf字段同步 我尝试使用edit_attachmenthook更新这两个字段,但问题是如何知道一个标记是添加到标记还是从acf字段中删除,反之亦然,在这种情况下edit_attachment对我没有帮助 除此之外,如果acf字段位于其他地方(一篇文章将其用作特色图片,我想在编辑文章页面中添加/更新附件标签),它将永远不会触发edit\u attachmenthook,因此我无法同步这两个字段 如果有

我在WordPress附件中添加了
attachment\u标签
taxonomy

现在,我希望它与acf字段同步

我尝试使用
edit_attachment
hook更新这两个字段,但问题是如何知道一个标记是添加到标记还是从acf字段中删除,反之亦然,在这种情况下
edit_attachment
对我没有帮助

除此之外,如果acf字段位于其他地方(一篇文章将其用作特色图片,我想在编辑文章页面中添加/更新附件标签),它将永远不会触发
edit\u attachment
hook,因此我无法同步这两个字段

如果有人知道任何更好的钩或其他方式,我可以用它来工作,请让我知道


如果还有什么,我需要补充来描述我的情况,请让我知道。

答案的一部分:-

使用
acf/update\u值

add_filter('acf/update_value', 'my_acf_update_value', 10, 3);

function my_acf_update_value( $value, $post_id, $field  ) {
    // only do it to certain custom fields
    if( $field['name'] == 'custom_field' ) {

        // get the old (saved) value
        $old_value = get_field('custom_fields', $post_id);

        // get the new (posted) value
        $new_value = $_POST['acf']['custom_field'];
        if( $old_value != $new_value ) {
            //update here
        }
}
这是如何在附件编辑页面外完成的


现在唯一的问题是附件编辑页面。部分答案:-

使用
acf/update\u值

add_filter('acf/update_value', 'my_acf_update_value', 10, 3);

function my_acf_update_value( $value, $post_id, $field  ) {
    // only do it to certain custom fields
    if( $field['name'] == 'custom_field' ) {

        // get the old (saved) value
        $old_value = get_field('custom_fields', $post_id);

        // get the new (posted) value
        $new_value = $_POST['acf']['custom_field'];
        if( $old_value != $new_value ) {
            //update here
        }
}
这是如何在附件编辑页面外完成的

现在唯一的问题是附件编辑页面。