在wordpress中为用户元框添加多个复选框值

时间:2012-12-26 07:15:34

标签: wordpress user-profile

我在用户个人资料页面上找到了关于添加额外字段的帖子。之后,我想将额外的字段保存到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这样的数组'}。

0 个答案:

没有答案