'string', 'description' => 'Verdict classification state', 'single' => true, 'show_in_rest' => true, 'auth_callback' => '__return_true', 'sanitize_callback' => function ( $value ) use ( $allowed_states ) { return in_array( $value, $allowed_states, true ) ? $value : ''; }, ) ); // Register signal row meta (up to 3). for ( $i = 1; $i <= 3; $i++ ) { register_post_meta( 'pr_peptide', 'signal_row_' . $i, array( 'type' => 'string', 'description' => 'Evidence signal row ' . $i, 'single' => true, 'show_in_rest' => true, 'auth_callback' => '__return_true', 'sanitize_callback' => 'sanitize_text_field', ) ); } } add_action( 'init', 'peptide_starter_register_verdict_meta' ); /** * Add verdict meta box to pr_peptide edit screen. * * @return void */ function peptide_starter_add_verdict_meta_box() { add_meta_box( 'peptide_starter_verdict', esc_html__( 'Verdict System', 'peptide-starter' ), 'peptide_starter_render_verdict_meta_box', 'pr_peptide', 'normal', 'high' ); } add_action( 'add_meta_boxes', 'peptide_starter_add_verdict_meta_box' ); /** * Render verdict meta box HTML. * * @param WP_Post $post The post object. * @return void */ function peptide_starter_render_verdict_meta_box( $post ) { wp_nonce_field( 'peptide_starter_verdict_nonce', 'peptide_starter_verdict_nonce' ); $verdict_state = get_post_meta( $post->ID, 'verdict_state', true ); $signal_row_1 = get_post_meta( $post->ID, 'signal_row_1', true ); $signal_row_2 = get_post_meta( $post->ID, 'signal_row_2', true ); $signal_row_3 = get_post_meta( $post->ID, 'signal_row_3', true ); $allowed_states = array( 'established' => esc_html__( 'Established', 'peptide-starter' ), 'promising' => esc_html__( 'Promising', 'peptide-starter' ), 'investigational' => esc_html__( 'Investigational', 'peptide-starter' ), 'insufficient' => esc_html__( 'Insufficient Evidence', 'peptide-starter' ), 'cautionary' => esc_html__( 'Cautionary', 'peptide-starter' ), ); ?>