UPDATE_USER_META():无形数据存储

时间:2015-07-09 作者:Sovnfield

我尝试使用此代码自定义用户配置文件(从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问题,但它没有改变。

这让我抓狂,数据存储在哪里?

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

应将其存储在wp_usermeta 下的表格entrepriseos 用户元密钥。

您应该考虑在自定义元键上使用前缀,以避免名称冲突。示例:

kerzzy_entreprise 
kerzzy_os
它应显示为:

SELECT * FROM `wp_usermeta` WHERE `meta_key` = \'entreprise\'
在MySQL管理工具中,例如PHPMyAdmin。

。。。并确保您在正确的数据库中;-)

结束

相关推荐

Extending the database

我正在尝试向comments数据库中添加一个额外的列,该列将存储帖子/页面作者的用户ID。这是插件的一部分,该插件将显示新评论以回复帖子或其他评论。据我所知,Wordpress没有内置此功能,而是将评论放在一个大组中。我希望用户只快速看到与自己相关的评论。require_once(ABSPATH . \'wp-admin/includes/upgrade.php\'); global $wpdb; $wpdb->show_errors(); $query = \