Benutzerdefinierte Feldwerte werden nicht in der Bearbeiten-Seite des benutzerdefinierten Posttyps angezeigt

Benutzerdefinierte Feldwerte werden nicht in den entsprechenden Feldern angezeigt, wenn ich auf die Schaltfläche “Bearbeiten” klicke. Sie werden nur leer angezeigt, wenn wir einen neuen Beitrag erstellen. Ich kann die Werte auch während der Bearbeitung im benutzerdefinierten Feld speichern, aber trotzdem Die gespeicherten Werte werden nicht in den Feldern angezeigt (hier der “id” -Text und das Optionsfeld “Mitgliedschaft”), während der Post bearbeitet wird. Das ID-Feld ist leer und das Optionsfeld zeigt das standardmäßig ausgewählte an

Kann jemand darauf hinweisen, was ich hier falsch gemacht habe?
Hier ist der Code:

add_action( 'init', 'codex_custom_init' ); add_action( 'admin_menu','member_manager_add_meta' ); add_action( 'save_post', 'member_manager_save_extras' ); add_filter( "manage_edit-member_columns", "change_columns" ); add_action( "manage_member_posts_custom_column", "custom_columns", 10, 2 ); function codex_custom_init() { $labels = array( 'name' => _x('Members', 'post type general name'), 'singular_name' => _x('Member', 'post type singular name'), 'add_new' => _x('Add New', 'Member'), 'add_new_item' => __('Add New Member'), 'edit_item' => __('Edit Member'), 'new_item' => __('New Member'), 'all_items' => __('All Members'), 'view_item' => __('View Member'), 'search_items' => __('Search Members'), 'not_found' => __('No members found'), 'not_found_in_trash' => __('No members found in Trash'), 'parent_item_colon' => '', 'menu_name' => __('Members') ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, 'menu_position' => null, 'supports' => array( 'title') ); register_post_type('Member',$args); } function member_manager_add_meta(){ add_meta_box("members-meta", "Member Details","member_manager_meta_options",'member','normal','high'); } function member_manager_meta_options(){ global $post; $values =get_post_custom($post->ID); $id = isset( $values["isprp_id" ]) ? $values["isprp_id" ] : ' '; $membership = isset( $values["isprp_member" ]) ? esc_attr( $values["isprp_member" ]): ''; wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' ); ?> 
<input type="text" name="isprp_id" id="isprp_id" value ="" />
<input type="radio" name="isprp_member" value="Life Member" checked />Life Member<input type="radio" name="isprp_member" value="Associate Member" />Associate Member
'', 'title'=>('Name'), 'isprpid' => __('ID','trans'), 'isprpmember' =>__('Membership','trans') ); return $cols; } function custom_columns($column,$post_id){ switch ($column){ case 'isprpid': $isprpid = get_post_meta( $post_id, 'isprpid', true); echo '' . $isprpid. ''; break; case 'isprpmember': $isprpmember = get_post_meta( $post_id, 'isprpmember', true); echo '' . $isprpmember. ''; break; } }

Solutions Collecting From Web of "Benutzerdefinierte Feldwerte werden nicht in der Bearbeiten-Seite des benutzerdefinierten Posttyps angezeigt"

Wenn Sie Zweifel an der functionsweise von WordPress-functionen haben, konsultieren Sie den Codex:
http://codex.wordpress.org/Function_Reference/register_post_type

Dort können wir sehen, dass supports Argument supports bei der Registrierung eines Post-Typs viele Optionen hat, eines davon custom-fields .

Damit würde die CF-Box für den CPT aktiviert:

 $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, 'menu_position' => null, 'supports' => array( 'title', 'custom-fields' ) ); 

Außerdem fehlt in der function member_manager_meta_options schließende .

[AKTUALISIEREN]

Ich werde dieses Q & A für die Schließung als zu lokal markieren. Die Probleme damit sind Fehler in den Post-Meta-Schlüsselnamen und falsches Lesen von Variablenwerten.

Wenn die folgenden Debug-Informationen innerhalb der function member_manager_meta_options , sehen Sie, warum keine Werte gelesen werden ( weil sie gespeichert werden ).

 $values =get_post_custom($post->ID); echo '
' . print_r( $values,true ) . '

';

Eine funktionierende function wäre also:

 function member_manager_meta_options(){ global $post; $values =get_post_custom($post->ID); //echo '
' . print_r( $values,true ) . '

'; $id = isset( $values["isprp_id" ]) ? esc_attr($values["isprp_id" ][0]) : ' '; $member_life = ( 'Life Member' == $values["isprp_member" ][0] ) ? 'checked' : ''; $member_assoc = ( 'Associate Member' == $values["isprp_member" ][0] ) ? 'checked' : ''; wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' ); ?>

/>Life Member />Associate Member

< ?php }

Und das Problem der post_meta Schlüsselnamen ist, dass isprp_member und isprpmember (und auch ispr_id ) nicht durch den Code konsolidiert werden. Sie werden als Spalten-IDs und als Post-Meta-Schlüssel verwendet .