WordPress.org

Ready to get started?Download WordPress

Forums

Custom “radio button meta box” not saving correctly (1 post)

  1. Shaun Brown
    Member
    Posted 2 years ago #

    I'm having trouble with my "custom meta box/write panel" script that contains radio buttons. (see below)...It currently does not seem to save the selection made after publishing the custom post type, not sure what Ive missed???

    How I plan to utilize this essentially is by letting the client choose one of the radio button choices, and depending on what selection is made I will output that as a class into an anchor tag to help instantiate a specific image overlay.

    Thank you for your help!

    <?php
    add_action( 'add_meta_boxes', 'musicreleases_linktype_meta_box_add' );
    function musicreleases_linktype_meta_box_add()
    {
        add_meta_box( 'musicreleases_linktype_meta_id', 'Link Type (Optional)', 'musicreleases_linktype_meta_box_cb', 'eprmusicrelease', 'normal', 'low' );
    }
    
    function musicreleases_linktype_meta_box_cb( $post )
    {
        $values = get_post_custom( $post->ID );
        $radio = isset( $values['meta_box_musicreleases_linktype'] ) ? esc_attr( $values['meta_box_musicreleases_linktype'][0] ) : '';
        wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' );
        ?>
        <p>
            <input type="radio" name="linktype" value="free" <?php echo ($radio); ?>/> Free<br />
            <input type="radio" name="linktype" value="itunes" <?php echo ($radio); ?>/> iTunes<br />
            <input type="radio" name="linktype" value="none" <?php echo ($radio); ?>/> None<br />
        </p>
        <?php
    }
    
    add_action( 'save_post', 'musicreleases_linktype_meta_box_save' );
    function musicreleases_linktype_meta_box_save( $post_id )
    {
        if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
        if( !isset( $_POST['meta_box_nonce'] ) || !wp_verify_nonce( $_POST['meta_box_nonce'], 'my_meta_box_nonce' ) ) return;
        if( !current_user_can( 'edit_post' ) ) return;
    
        $allowed = array(
            'a' => array(
                'href' => array()
            )
        );
    
        if( isset( $_POST['meta_box_musicreleases_linktype'] ) )
            update_post_meta( $post_id, 'meta_box_musicreleases_linktype', wp_kses( $_POST['meta_box_musicreleases_linktype'], $allowed ) );
    }
    ?>

Topic Closed

This topic has been closed to new replies.

About this Topic