如何在wp中更新自定义用户元字段?

时间:2019-07-11 作者:rob.m

我使用以下方法在用户配置文件编辑器屏幕上添加和显示新的用户元字段,但当我单击更新按钮时,值不会更改:

function extra_user_profile_fields( $user ) { ?>
    <table class="form-table">
      <tr>
          <th><label for="save_post_external"><?php _e("Save posts external"); ?></label></th>
          <td>
              <input type="text" name="save_post_external" id="save_post_external" value="<?php echo esc_attr( get_the_author_meta( \'save_post_external\', $user->ID ) ); ?>" class="regular-text" /><br />
          </td>
      </tr>
      <tr>
          <th><label for="save_post_internal"><?php _e("Save posts internal"); ?></label></th>
          <td>
              <input type="text" name="save_post_internal" id="save_post_internal" value="<?php echo esc_attr( get_the_author_meta( \'save_post_internal\', $user->ID ) ); ?>" class="regular-text" /><br />
          </td>
      </tr>
    </table>
  <?php }
  add_action( \'show_user_profile\', \'extra_user_profile_fields\' );
  add_action( \'edit_user_profile\', \'extra_user_profile_fields\' );


  add_action( \'personal_options_update\', \'save_extra_user_profile_fields\' );
  add_action( \'edit_user_profile_update\', \'save_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, \'Save Posts\', $_POST[\'save_post_external\'] );
    update_user_meta( $user_id, \'Save Posts\', $_POST[\'save_post_internal\'] );
  }

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

您使用了错误的meta键:

update_user_meta( $user_id, \'Save Posts\', $_POST[\'save_post_external\'] );
update_user_meta( $user_id, \'Save Posts\', $_POST[\'save_post_internal\'] );
这应该是:

update_user_meta( $user_id, \'save_post_external\', $_POST[\'save_post_external\'] );
update_user_meta( $user_id, \'save_post_internal\', $_POST[\'save_post_internal\'] );

相关推荐

如何让`wp-list-table`显示我在Custom-Post中的`Custom-Fields`

一切都好吗<我需要wp-list-table 也要显示custom-fields 在每个custom-post 我有,但我不知道如何做到这一点,在这幅图中,它显示了带有字段的表格:Title, Author and Publication Date: 我想要的是能够选择custom-fields 将出现,例如以下示例Title, Carta, Naipe, Author, and Date of Publication: