Wordpress自定义字段不会始终更新数据库

时间:2018-03-26 21:16:36

标签: wordpress

我在用户编辑管理页面上创建自定义字段。我将自定义代码添加到functions.php中。

问题:有时会更新数据库,有时它不会更新数据库。

我认为这是缓存,但事实并非如此。有人可以告诉我为什么有时会更新而不是一直更新?你看到我的代码有问题吗?

代码:

add_action( 'show_user_profile', 'be_show_extra_profile_fields' );
add_action( 'edit_user_profile', 'be_show_extra_profile_fields' );

function be_show_extra_profile_fields( $user ) { ?>

    <table class="form-table">
        <tr>
            <th><label for="contact">Phone</label></th>
            <td>
                <input type="text" name="phone" id="phone" value="<?php echo esc_attr( get_the_author_meta( 'phone', $user->ID ) ); ?>" class="regular-text" /><br />
                <span class="description">Enter phone number.</span>
            </td>
        </tr>
    </table>
<?php } 
add_action( 'personal_options_update', 'be_save_extra_profile_fields' );
add_action( 'edit_user_profile_update', 'be_save_extra_profile_fields' );

function be_save_extra_profile_fields( $user_id ) {

    if ( ! current_user_can( 'edit_user', $user_id ) ) {
        return false;
    }

    update_usermeta( $user_id, 'phone', esc_attr( $_POST['phone'] ) );
}

更新

我现在知道为什么管理表单有时会更新数据库,有时它不会更新数据库。管理员表单在个人资料页面上还有一个电话字段以及电话字段。当我在管理员中更新手机并刷新配置文件页面上的页面时,它会在未填写文本框时更新它。当填写文本框并在管理员中更新表单时,刷新配置文件页面将插入来自个人资料页面。因此,配置文件页面存在问题,它会在刷新时插入数据。

1 个答案:

答案 0 :(得分:0)

我现在知道为什么管理表单有时会更新数据库,有时它不会更新数据库。管理员表单在个人资料页面上有一个电话字段,还有电话字段。当我在管理员中更新手机并刷新配置文件页面上的页面时,它会在未填写文本框时更新它。当填写文本框并在管理员中更新表单时,刷新配置文件页面将插入来自个人资料页面。因此,配置文件页面存在问题,它会在刷新时插入数据。管理表单正在更新数据库。配置文件表单似乎没有更新,因为刷新时它将使用该值更新数据库。