我在用户个人资料页面上找到了关于添加额外字段的帖子。之后,我想将额外的字段保存到usermeta表。我通过以下代码完成了这项工作。
add_action( 'personal_options_update', 'my_save_badge_profile_fields' );
add_action( 'edit_user_profile_update', 'my_save_badge_profile_fields' );
function my_save_badge_profile_fields( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) )
return false;
/* Copy and paste this line for additional fields. Make sure to change 'twitter' to the field ID. */
update_usermeta( $user_id, 'badge', $_POST['badge'] );
}
但是现在我想在“徽章”名称中存储一个值数组,因为我在管理员的用户个人资料页面中添加了多个复选框,我的代码用于在用户个人资料页面中添加更多复选框,如下所示。
add_action( 'show_user_profile', 'my_show_badge_profile_fields' );
add_action( 'edit_user_profile', 'my_show_badge_profile_fields' );
function my_show_badge_profile_fields( $user ) {
?> <h3>User Badges</h3>
<table class="form-table">
<tr>
<th><label for="twitter">Badges:</label></th>
<?php
$args = array(
'post_type' => 'badge',
);
// The query itself
$sb_user_query = new WP_Query( $args );
// The loop
while ( $sb_user_query->have_posts() ) : $sb_user_query->the_post();
$badge_id = $sb_user_query->post->ID;
$badge_title = get_the_title();
$badge_image_small = get_the_post_thumbnail( $badge_id, array(16,16) );
?>
<td>
<?php echo $badge_image_small; ?> <input type="checkbox" value="<?php echo $badge_title; ?>" name="badge">
</td>
<?php
endwhile;
?>
</tr>
</table>
<?php
}
现在我想将数据保存在数据库中的usermeta表中,就像数组一样,就像复选框中的名称是'badge'一样,值是{'a','b','c这样的数组'}。