Intereting Posts
Как получить доступ к gravatar? Как редактировать удаленную галерею изображений? Как сделать папку wordpress (/ wordpress) перенаправлена ​​на /? Почему только первая операция выполняется в моем цикле – за исключением последнего повтора? Разрешить запрос GET на определенной странице Режим отладки показывает строгие стандарты Как отобразить раздел на определенное время Не подвергнуты дезинфекции темам, более уязвимым для вредоносных скриптов, чем редактор тем? У плагина требуется еще два плагина Не удается отправить письма с помощью контактного плагина Заставить URL-адрес веб-сайта включать «www» и быть верхним регистром? ОШИБКА: «Префикс таблицы» не должен быть пустым dequeue не работает Как сделать следующий цикл прерывания / остановки, когда он достигает 2 сообщений (пользовательские типы сообщений, называемые темами)? Динамические боковые панели и эхо

Примечание. Неопределенный индекс: ошибка и понимание 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"]); } }