Intereting Posts
Как вернуться в режим отсутствия отвлечения, который у нас был до WP 4.1? Использовать WP_Rewrite для предварительной проверки ссылок / обнаружения недействительных ссылок Удаление и изменение ярлыков страниц нужно отредактировать php-файл дочерней темы, чтобы удалить элемент WP не использует выбранный шаблон template.php, который выбран для страницы Сортировка по метазначению, но включает сообщения, в которых нет Ответ AJAX и -1 Функция плагина jQuery не является функцией Как уменьшить размер изображения Неправильное правило перезаписи Многопользовательский htaccess на localhost с WP как внешний SVN? Используйте <? Php echo $ _GET ; ?> отслеживать рефералов Я хочу получить персонализированный пост с идентификатором таксономии Ограничения для одного домена / нескольких доменов, разрешенные для плагинов? Пустой мусорный крючок для комментария wp

Примечание. Неопределенный индекс: ошибка и понимание wordpress

Я пытаюсь создать пользовательские типы сообщений с wordpress 4. Я следовал учебнику под названием «Buildin WordPress Themes From Scratch». Я нахожусь на локальном хосте, поэтому включен режим отладки.

Когда я пытаюсь создать новый CPT, я получаю форму, но все же получаю undefined index errors on source, author and date. Я попытался решить, проверив индекс массива, но он не решился. Можете ли вы помочь мне решить эту проблему?

 function basin_manager_meta_options(){ global $post; if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return $post_id; $custom = get_post_custom($post->ID); if(isset($custom["source"])){ $source= $custom["source"][0]; } $author= $custom["author"][0]; $date= $custom["date"][0]; ?> <style type="text/css"> <?php include('basin-manager.css'); ?> </style> <div class="basin_manager_extras"> <?php $website= ($website == "") ? "http://" : $website; ?> <div><label>Website / Gazete ? :</label> <input name="source" value="<?php echo $source; ?>" /> </div> <div><label>Yazar:</label> <input name="author" value="<?php echo $author; ?>" /> </div> <div><label>Date:</label> <input name="date" value="<?php echo $date; ?>" /> </div> <?php } add_action('save_post', 'basin_manager_save_extras'); function basin_manager_save_extras(){ global $post; if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ){ //if you remove this the sky will fall on your head. return $post_id; }else{ update_post_meta($post->ID, "source", $_POST["source"]); update_post_meta($post->ID, "author", $_POST["author"]); update_post_meta($post->ID, "date", $_POST["date"]); } } 

Благодарю.

Solutions Collecting From Web of "Примечание. Неопределенный индекс: ошибка и понимание wordpress"

Первое, что я вижу, что нужно изменить, – это то, что вы не учитываете значения полей ввода. Попробуйте обрезать isset вокруг переменной перед эхом, это остановит ошибки, если они не будут назначены или пусты.

Во-вторых, поскольку вы передали id сообщения get_post_custom (), вам не нужен второй массив.

 function basin_manager_meta_options(){ global $post; if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return $post_id; $custom = get_post_custom($post->ID); if(isset($custom["source"])){ $source= $custom["source"]; } $author= $custom["author"]; $date= $custom["date"];** ?> <style type="text/css"> <?php include('basin-manager.css'); ?> </style> <div class="basin_manager_extras"> <?php $website= ($website == "") ? "http://" : $website; ?> <div><label>Website / Gazete ? :</label> <input name="source" value="<?php echo isset($source) ? source : ''; ?>" /> </div> <div><label>Yazar:</label> <input name="author" value="<?php echo isset($author) ? $author : ''; ?>" /> </div> <div><label>Date:</label> <input name="date" value="<?php echo isset($date) ? $date : ''; ?>" /> </div> <?php } add_action('save_post', 'basin_manager_save_extras'); function basin_manager_save_extras(){ global $post; if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ){ //if you remove this the sky will fall on your head. return $post_id; } else { update_post_meta($post->ID, "source", $_POST["source"]); update_post_meta($post->ID, "author", $_POST["author"]); update_post_meta($post->ID, "date", $_POST["date"]); } }