Nicht definierter Fehler ‘post_type’ beim Hinzufügen einer neuen Seite

Ich habe ein Meta-Feld für die Seite erstellt, siehe folgenden Code:

add_action('add_meta_boxes', 'add_metaboxes'); function add_metaboxes() { add_meta_box( 'wpt_slider_meta', 'Add Slider Image', 'wpt_slider_meta', 'slider', 'normal', 'default' ); } function wpt_slider_meta() { global $post; wp_nonce_field(plugins_url(__FILE__), 'meta_slider_noncename'); $values = get_post_meta($post->ID, '_meta-slider_img', true); // Some html and scripts to upload image. } add_action( 'save_post', 'save_slider_img' ); function save_slider_img( $post_id ) { if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; if ( 'slider' == $_POST['post_type'] ) { if ( !current_user_can( 'edit_page', $post_id ) ) return; } else { if ( !current_user_can( 'edit_post', $post_id ) ) return; } if(wp_verify_nonce($_POST['meta_slider_noncename'], plugins_url(__FILE__)) ) { $images = $_POST['meta-slider_img']; update_post_meta( $post_id, '_meta-slider_img', $images ); } } 

Ich habe zwei Warnungen erhalten, wenn ich auf Neue Seite hinzufügen klicke; Abgesehen davon funktioniert der gesamte Code einwandfrei.

Notice: Undefined index: post_type in /var/www/html/transport/wp-content/themes/transport/functions.php on line 192

Notice: Undefined index: meta_slider_noncename in /var/www/html/transport/wp-content/themes/transport/functions.php on line 200

Jeder kann helfen?

Solutions Collecting From Web of "Nicht definierter Fehler ‘post_type’ beim Hinzufügen einer neuen Seite"

save_post wird aufgerufen, wenn Post eingefügt oder aktualisiert wird. Wenn Sie auf Neuen Beitrag hinzufügen klicken, wird ein Beitrag erstellt und in die database eingefügt. Das ist eigentlich Entwurf. Zu diesem Zeitpunkt ist $_POST leer, daher sehen Sie Warnungen.

Lösung:

Die beste Option ist, die function zu verlassen, sobald Sie die nonce nicht finden. Und verwenden Sie isset() , um zu prüfen, ob der Schlüssel vorhanden ist.

Beispiel:

 function save_slider_img( $post_id ) { if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } if (!isset($_POST['meta_slider_noncename'])) { return; } if(!wp_verify_nonce($_POST['meta_slider_noncename'], plugins_url(__FILE__))) { return; } if ('slider' == $_POST['post_type'] && current_user_can( 'edit_page', $post_id )) { $images = isset($_POST['meta-slider_img']) ? $_POST['meta-slider_img'] : false; update_post_meta( $post_id, '_meta-slider_img', $images ); } }