Benutzerdefinierte Meta-Box verursacht Fehler: “Sind Sie sicher, dass Sie dies tun möchten? Bitte versuche es erneut.”

Mein benutzerdefinierter Post-Typ hat ein Meta-Feld, das einen anderen benutzerdefinierten Post-Typ in seinem Meta-Feld auflistet. Und es verursacht jedes Mal Fehler, wenn ich versuche, einen Post mit diesem benutzerdefinierten Post-Typ zu veröffentlichen. Es ist immer zu einer Seite, die sagen “Bist du sicher, dass du das willst? Bitte versuchen Sie es erneut”. Es hat kein Problem in meinem localhost, aber funktioniert nicht, wenn ich es auf meinem Webhosting betreibe.

Hier sind die Codes:

add_action( 'add_meta_boxes', 'ind_pricing_tables_boxes' ); function ind_pricing_tables_boxes() { $screens = array( 'indtable' ); foreach ($screens as $screen) { add_meta_box('indtable_boxid', __( 'Pricing Table', 'pricing_table' ), 'ind_pricing_tables_boxes_form', $screen ); } } function ind_pricing_tables_boxes_form() { global $post; wp_nonce_field( 'ind_pricing_table_box_nonce' ); $ind_table_packs = get_post_meta($post->ID, "_ind_meta_table_keypacks", true); $ind_table_packs = ($ind_table_packs == '') ? array() : json_decode($ind_table_packs); $query = new WP_Query(array( 'post_type' => 'indpackage', 'post_status' => 'publish', 'posts_per_page' => -1, 'orderby' => 'post_date', 'order' => 'ASC' ) ); $ind_form_box = ''; $ind_form_box .= ""; while ($query->have_posts()) : $query->the_post(); $checked_whichs = (in_array($query->post->ID, $ind_table_packs)) ? "checked" : ""; $ind_form_box .= ""; endwhile; $ind_form_box .= '
Select Package Package Names
post->ID . "' /> " . $query->post->post_title . "
'; echo $ind_form_box ; }

Was verursacht den Fehler?

Speichere Metabox-function

 function ind_save_pricing_boxtables($post_id) { if (!wp_verify_nonce($_POST['ind_pricing_table_box_nonce'], basename(__FILE__))) { return $post_id; } if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return $post_id; } if ('indtable' == $_POST['post_type'] && current_user_can('edit_post', $post_id)) { $pricing_ind_table_packages = (isset($_POST['pricing_ind_table_packages']) ? $_POST['pricing_ind_table_packages'] : array()); $pricing_ind_table_packages = json_encode($pricing_ind_table_packages); update_post_meta($post_id, "_ind_meta_table_keypacks", $pricing_ind_table_packages); } else { return $post_id; } } 

Solutions Collecting From Web of "Benutzerdefinierte Meta-Box verursacht Fehler: “Sind Sie sicher, dass Sie dies tun möchten? Bitte versuche es erneut.”"

so müssen Sie korrigieren Sie Ihre Nonce-Feld fügen Sie einen zweiten Pram Nonce-Namen, weitere Informationen über WordPress-Codex hier

 // wp nonce field wp_nonce_field( $action, $name, $referer, $echo ); // replace yours with below wp_nonce_field( 'ind_pricing_table_box_nonce', 'ind_pricing_nonce' ); 

Jetzt bestätigen Sie Ihre Nonce, mehr Infos hier

 wp_verify_nonce( $nonce, $action ); // replace yours with below if (!wp_verify_nonce( $_POST['ind_pricing_nonce'], 'ind_pricing_table_box_nonce' )) { return $post_id; }