保存自定义字段时高级自定义字段与自定义插件冲突

时间:2019-10-02 作者:Isaac

我正在为实践编写一个插件,遇到了另一个插件高级自定义字段与我的代码冲突的问题。我已经用自己的自定义字段创建了一个自定义帖子类型。如果禁用ACF,我的保存方法会起作用,并且会保存自定义字段数据,但是,当我尝试在插件处于活动状态的情况下保存/发布时,我会收到一个验证错误,我认为这是来自ACF插件。有关错误消息,请参阅pic。

所以我想我的问题是,我是否需要检查这个插件是否处于活动状态并使用它的功能来处理这个问题,如果不是以正常的方式来处理,还是我做错了什么?是否每个保存自定义字段数据的插件都必须检查此插件是否处于活动状态并相应地进行处理?这对我来说似乎并不合适,但这是我第一次编写插件。

error message

以下是我的保存方法:

public function save_metabox_details() {
        global $post;
        if(current_user_can(\'editor\') || current_user_can(\'administrator\') && isset($_POST[\'ipmyskills_nonce\'])) {
            $nonce = $_POST[\'ipmyskills_nonce\'];
            if( $nonce && !check_admin_referer( basename(__FILE__), \'ipmyskills_nonce\' )) {
                die(\'Validation error\');
            }
            if (isset($_POST[\'ipmyskills_input\'])) {
                $sanitized_value = esc_html( sanitize_text_field( $_POST[\'ipmyskills_input\'] ) );
                update_post_meta($post->ID, \'ipmyskills_input\', $sanitized_value);
            }
        }

    }

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

显然我是个笨蛋。我最初是用高级自定义字段插件构建这个插件,并在主题中进行,但决定尝试构建我的第一个插件。我创建了一个自定义字段组,并使用ACF将其分配给post类型,因此这就是触发验证错误的原因。一旦我删除了字段组,一切都按预期进行。

相关推荐