Intereting Posts
Временное перенаправление WordPress Admin (Все сообщения) перестать отвечать на вопросы Как я могу отображать пользовательские типы сообщений на странице? Пользовательский объект типа сообщения – неопределенные переменные проблемы с кешем объектов (memcached как backend) и wpmu при запуске flush_all Показывает предупреждение при включении плагина «wp_gallery_custom_links» с помощью Themify Builder Добавить список терминов как класс Использование функции_widget Multiple Times WordPress Multisite – можно ли разместить основной сайт в подкаталоге? Сайт НЕ НАГРУЖЕН после обновления 3.1 Как смешивать 2 типа типов сообщений Как использовать wp_dequeue_style () для стиля, помещенного в класс WP_Widget Отображение пользовательской таксономии в списке администраторов настраиваемого типа сообщений Редактор WordPress не получает просмотр видео в формате youtube Опубликовать на странице не работает для пользовательского типа сообщения на шаблоне страницы

Уведомление Metabox nonce PHP

Я получаю уведомление, когда я пытаюсь добавить новое сообщение в две разные таксономии, в одном я использую настраиваемый мета-ящик, а другой нет, однако уведомление появляется как при попытке добавить новый элемент, я вижу this: Notice: Неопределенный индекс: product_noncename в /Applications/MAMP/htdocs/site/wordpress/wp-content/themes/theme/functions.php в строке 259, скрытый чуть ниже верхней черной полосы в WP Admin

Строка 259:

if ( !wp_verify_nonce( $_POST['product_noncename'], plugin_basename(__FILE__) )) { 

который является частью этого:

 // Save the Metabox Data function wpt_save_product_meta($post_id, $post) { // verify this came from the our screen and with proper authorization, // because save_post can be triggered at other times if ( !wp_verify_nonce( $_POST['product_noncename'], plugin_basename(__FILE__) )) { return $post->ID; } // Is the user allowed to edit the post or page? if ( !current_user_can( 'edit_post', $post->ID )) return $post->ID; // OK, we're authenticated: we need to find and save the data // We'll put it into an array to make it easier to loop though. $product_meta['_location'] = $_POST['_location']; $product_meta['_asiaLoc'] = $_POST['_asiaLoc']; $product_meta['_europeLoc'] = $_POST['_europeLoc']; $product_meta['_isbn'] = $_POST['_isbn']; $product_meta['_orderform'] = $_POST['_orderform']; // Add values of $events_meta as custom fields foreach ($product_meta as $key => $value) { // Cycle through the $events_meta array! if( $post->post_type == 'revision' ) return; // Don't store custom data twice $value = implode(',', (array)$value); // If $value is an array, make it a CSV (unlikely) if(get_post_meta($post->ID, $key, FALSE)) { // If the custom field already has a value update_post_meta($post->ID, $key, $value); } else { // If the custom field doesn't have a value add_post_meta($post->ID, $key, $value); } if(!$value) delete_post_meta($post->ID, $key); // Delete if blank } } add_action('save_post', 'wpt_save_product_meta', 1, 2); // save the custom fields 

Solutions Collecting From Web of "Уведомление Metabox nonce PHP"

 // Save the Metabox Data function wpt_save_product_meta($post_id, $post) { if($post->post_type!='post type with metabox') { return $post->ID; } // verify this came from the our screen and with proper authorization, // because save_post can be triggered at other times if ( !wp_verify_nonce( $_POST['product_noncename'], plugin_basename(__FILE__) )) { return $post->ID; } // Is the user allowed to edit the post or page? if ( !current_user_can( 'edit_post', $post->ID )) return $post->ID; // OK, we're authenticated: we need to find and save the data // We'll put it into an array to make it easier to loop though. $product_meta['_location'] = $_POST['_location']; $product_meta['_asiaLoc'] = $_POST['_asiaLoc']; $product_meta['_europeLoc'] = $_POST['_europeLoc']; $product_meta['_isbn'] = $_POST['_isbn']; $product_meta['_orderform'] = $_POST['_orderform']; // Add values of $events_meta as custom fields foreach ($product_meta as $key => $value) { // Cycle through the $events_meta array! if( $post->post_type == 'revision' ) return; // Don't store custom data twice $value = implode(',', (array)$value); // If $value is an array, make it a CSV (unlikely) if(get_post_meta($post->ID, $key, FALSE)) { // If the custom field already has a value update_post_meta($post->ID, $key, $value); } else { // If the custom field doesn't have a value add_post_meta($post->ID, $key, $value); } if(!$value) delete_post_meta($post->ID, $key); // Delete if blank } } add_action('save_post', 'wpt_save_product_meta', 1, 2); // save the custom fields 

Просто проверьте, установлено ли значение $_POST['product_noncename'] , поэтому измените эту строку:

 if ( !wp_verify_nonce( $_POST['product_noncename'], plugin_basename(__FILE__) )) { 

к этому:

 if ( !isset($_POST['product_noncename']) || !wp_verify_nonce( $_POST['product_noncename'], plugin_basename(__FILE__) )) { 

Основываясь на ответе Бейнтерн, это сработало для меня:

 if ( !isset($_POST['product_noncename']) || !wp_verify_nonce( $_POST['product_noncename'], basename(__FILE__) )) { 

Обратите внимание на разницу в имени plugin_basename и basename.