我在用户编辑管理页面上创建自定义字段。我将自定义代码添加到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'] ) );
}
更新
我现在知道为什么管理表单有时会更新数据库,有时它不会更新数据库。管理员表单在个人资料页面上还有一个电话字段以及电话字段。当我在管理员中更新手机并刷新配置文件页面上的页面时,它会在未填写文本框时更新它。当填写文本框并在管理员中更新表单时,刷新配置文件页面将插入来自个人资料页面。因此,配置文件页面存在问题,它会在刷新时插入数据。
答案 0 :(得分:0)
我现在知道为什么管理表单有时会更新数据库,有时它不会更新数据库。管理员表单在个人资料页面上有一个电话字段,还有电话字段。当我在管理员中更新手机并刷新配置文件页面上的页面时,它会在未填写文本框时更新它。当填写文本框并在管理员中更新表单时,刷新配置文件页面将插入来自个人资料页面。因此,配置文件页面存在问题,它会在刷新时插入数据。管理表单正在更新数据库。配置文件表单似乎没有更新,因为刷新时它将使用该值更新数据库。