Intereting Posts
Безопасный wordpress_logged_in cookie Как изменить основной запрос WP-JSON или передовую практику для пользовательских конечных точек получение данных в функции functions.php Есть ли быстрый способ удалить встроенный css из всех сообщений? Пользовательский WP_Query не отображает все сообщения Как отправить уведомление по почте, когда автор и участник сообщения? Как добавить панель администратора и меню администратора или пузырьки уведомлений подменю? 2 петли на странице – один с orderby rand второй порядок по дате Включить wp-blog-header.php из удаленного вызова functions.php? Как сделать мой пост WordPress в предварительном просмотре мыши? oEmbed не распознавать URL Vimeo .htaccess переписать Нужна помощь в добавлении дополнительных элементов управления в пользовательский виджет. Часть 2 Отправить форму для db WordPress показывает ссылку для регистрации для не зарегистрированных пользователей

Уведомление 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.