metabox只插入一个checkbox值

时间:2015-01-28 08:27:06

标签: wordpress custom-fields

在数据库中只插入一个复选框值,我希望在数据库中插入多个复选框值。

我想要的是,多个复选框应该插入数据库,插入数据库后,应该选中插入的复选框。请帮助

function prfx_custom_meta() {
        add_meta_box( 'prfx_meta', __( 'Meta Box Title', 'prfx-textdomain' ), 'prfx_meta_callback', 'post' );
    }
    add_action( 'add_meta_boxes', 'prfx_custom_meta' );
    function prfx_meta_callback( $post ) {
        wp_nonce_field( basename( __FILE__ ), 'prfx_nonce' );
        $prfx_stored_meta = get_post_meta( $post->ID ); ?>
     <form method="post">

     <?php   
     $users = get_users();
    foreach ($users as $user){  ?>

    <label for="meta-checkbox">
                <input type="checkbox" name="meta-checkbox[]" id="meta-checkbox" value="<?php echo  $user->user_login; ?>" <?php if ( isset ( $prfx_stored_meta['meta-checkbox'] ) ) checked( $prfx_stored_meta['meta-checkbox'][0], 'yes' ); ?> />
                <?php _e( 'Checkbox label', 'prfx-textdomain' )?>
            </label>

        <?php
    } ?>
    </form>
    <?php
    }
    function prfx_meta_save( $post_id ) {

        // Checks save status
        $is_autosave = wp_is_post_autosave( $post_id );
        $is_revision = wp_is_post_revision( $post_id );
        $is_valid_nonce = ( isset( $_POST[ 'prfx_nonce' ] ) && wp_verify_nonce( $_POST[ 'prfx_nonce' ], basename( __FILE__ ) ) ) ? 'true' : 'false';

        // Exits script depending on save status
        if ( $is_autosave || $is_revision || !$is_valid_nonce ) {
            return;
        }
     $checkbox = $_POST['meta-checkbox'];
    // Checks for input and saves
    if( isset( $_POST[ 'meta-checkbox' ] ) ) {
    for($i=0;$i<sizeof($checkbox);$i++){
        update_post_meta( $post_id, 'meta-checkbox', $checkbox[$i] );
    }
    } else {
        update_post_meta( $post_id, 'meta-checkbox', '' );
    }

    }
    add_action( 'save_post', 'prfx_meta_save' );

0 个答案:

没有答案