1

ユーザー プロファイル ページへの追加フィールドの追加に関する投稿を見つけました。その後、余分なフィールドを 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
}

チェックボックスの名前が「バッジ」で、値が { 'a','b','c'} のような配列であるように、配列のようなデータベースの usermeta テーブルにデータを保存したいと思います。

4

0 に答える 0