我尝试使用此代码自定义用户配置文件(从this 教程):
<?php function extra_user_profile_fields( $user ) { ?>
<h3>Autres</h3>
<table class="form-table">
<tbody>
<tr>
<th>Entreprise</th>
<td><input class="regular-text" id="entreprise" type="text" name="entreprise" value="<?php echo esc_attr( get_the_author_meta( \'entreprise\', $user->ID ) ); ?>" /></td>
</tr>
<tr>
<th>OS</th>
<td><input class="regular-text" id="os" type="text" name="os" value="<?php echo esc_attr( get_the_author_meta( \'os\', $user->ID ) ); ?>" /></td>
</tr>
</tbody>
</table>
<?php }
add_action( \'show_user_profile\', \'extra_user_profile_fields\' );
add_action( \'edit_user_profile\', \'extra_user_profile_fields\' );
function save_extra_user_profile_fields( $user_id ) {
if ( !current_user_can( \'edit_user\', $user_id ) ) {
return false;
}
update_user_meta( $user_id, \'entreprise\', $_POST[\'entreprise\'] );
update_user_meta( $user_id, \'os\', $_POST[\'os\'] );
}
add_action( \'personal_options_update\', \'save_extra_user_profile_fields\' );
add_action( \'edit_user_profile_update\', \'save_extra_user_profile_fields\' ); ?>
当我试图将自定义用户元数据添加到Wordpress中时,我看到了一件奇怪的事情;我将自定义数据保存在用户的配置文件中,数据保存在页面上,即使重新加载,我也可以看到它,但当我查看数据库时,表\\u usermeta根本没有更改;自定义数据不存在!我尝试了其他教程,没有任何php问题,但它没有改变。
这让我抓狂,数据存储在哪里?
最合适的回答,由SO网友:birgire 整理而成
应将其存储在wp_usermeta
下的表格entreprise
和os
用户元密钥。
您应该考虑在自定义元键上使用前缀,以避免名称冲突。示例:
kerzzy_entreprise
kerzzy_os
它应显示为:
SELECT * FROM `wp_usermeta` WHERE `meta_key` = \'entreprise\'
在MySQL管理工具中,例如PHPMyAdmin。
。。。并确保您在正确的数据库中;-)