Multiple Checkbox

时间:2015-02-19 作者:Diseñorapido

我无法保存(&A);在页面更新上显示复选框状态。

function checkbox(){
    global $post;
    $custom = get_post_custom($post->ID);
    $field_id = $custom["field_id"];
    echo "hola".$field_id[0];

    $blogusers = get_users( );  
    foreach ($blogusers as $user) {
        ?>

    <input type="checkbox" name="field_id[]" value="<?php echo $user->ID ;?>" <?php checked( in_array( absint( $user->ID ),$portfolio_cats ),true ); ?>/>
    <label><?php echo $user->display_name; ?></label><br>

<?php
    }
}

// Save Meta Details
add_action(\'save_post\', \'save_detail\');

function save_detail(){
    global $post;
    if (defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE) {
        return $post->ID;
    }


    update_post_meta($post->ID, \'field_id\', $data);
}
我做错了什么?

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

如前所述,您做了一些错误的事情,即字段名称不匹配&;未定义的变量:

function checkbox(){
    global $post;

    if ( ! is_array( $user_ids = get_post_meta( $post->ID, \'user_ids\', true ) ) )
        $user_ids = array();

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

<input id="user_field_<?php echo $user->ID ?>" type="checkbox" name="user_ids[]" value="<?php echo $user->ID ?>" <?php checked( in_array( $user->ID, $user_ids ) ) ?> /> 
<label for="user_field_<?php echo $user->ID ?>"><?php echo $user->display_name ?></label><br />
        <?php
    }

    echo \'<input type="hidden" name="user_ids[]" value="0" />\';
}

/**
 * Handler for saving our checkbox states.
 * 
 * @param   int $post_id    The current post being saved.
 */
function save_detail( $post_id ) {
    if ( isset( $_POST[\'user_ids\'] ) ) {
        $user_ids = array_map( \'absint\', ( array ) $_POST[\'user_ids\'] );
        $user_ids = array_filter( $user_ids );

        update_post_meta( $post_id, \'user_ids\', $user_ids );
    }
}

add_action( \'save_post\', \'save_detail\' );

结束

相关推荐

Multisite and plugins options

我需要更多关于get_site_option(), update_site_option() 和add_site_option().在codex中,他们说它与单次安装相同,只是在多站点中,它返回网络范围的选项。好吧,但我对这一点感到困惑:这是否意味着一旦设置了网络范围选项,所有站点的选项都是相同的?还是每个站点都会覆盖它?我的意思是如果我这样做: update_site_option(\'option_group\', \'default_options());// default_options() r