Здраствуйте.
Попытался добавить в форму свои зависимые поля для выбора города в зависимости от выбора региона по инструкции из статьи
Поля добавились в форму и данные из этих полей сохраняются в базу при публикации записи,но при редактировании записи эти поля пустые т.е. не отображаются уже введённые и сохранённые данные.Я думал что я что-то сделал не так поэтому добавил поле точно как в статье
но результат тот же в форме редактирование записи сохранённые данные в поле не выводится.
Отсюда вопрос-как вывести уже сохранённые данные в добавленном поле в форме редактирования записи.
Я же пробовал добавлять поля так
add_filter('public_form_rcl','add_custom_field_publicform',10,2); function add_custom_field_publicform($fls,$data){ //делаем проверку на тип записи if($data->post_type!='post') return $fls; $fls .= '<label>Страна <span class="required">*</span>:</label> <select id="dhtmlgoodies_country" name="dhtmlgoodies_country" onchange="getCityList(this)"> <option value="">Выберите страну</option> <option value="ru">Россия</option> <option value="ua">Украина</option> <option value="us">США</option> </select>'; return $fls; } add_filter('public_form_rcl','add_custom_field_publicform1',10,2); function add_custom_field_publicform1($fls1,$data){ //делаем проверку на тип записи if($data->post_type!='post') return $fls1; $fls1 .= '<label>Город <span class="required">*</span>:</label> <select id="dhtmlgoodies_city" name="dhtmlgoodies_city">'; return $fls1; } add_action('update_post_rcl','save_fielddata_publicform',10,2); function save_fielddata_publicform($post_ID, $postdata){ global $wpdb; if($postdata['post_type']!='post') return false; if(isset($_POST['dhtmlgoodies_city'])) $field = $_POST['dhtmlgoodies_city']; else $field = 0; update_post_meta($post_ID,'dhtmlgoodies_city',$field); } add_action('update_post_rcl','save_fielddata_publicform1',10,2); function save_fielddata_publicform1($post_ID, $postdata){ global $wpdb; if($postdata['post_type']!='post') return false; if(isset($_POST['dhtmlgoodies_country'])) $field = $_POST['dhtmlgoodies_country']; else $field = 0; update_post_meta($post_ID,'dhtmlgoodies_country',$field); }
Данные с полей сохраняются в базу но форме редактирования поста поля пустые
Я так понимаю, вам следует внутри функции add_custom_field_publicform() делать проверку на существующее значение и назначать атрибут selected для тега option, используйте функцию ВП для проверки selected():
$fls .= '<label>Страна <span class="required">*</span>:</label> <select id="dhtmlgoodies_country" name="dhtmlgoodies_country" onchange="getCityList(this)"> <option value="">Выберите страну</option> <option '.selected($value,'ru',false).' value="ru">Россия</option> <option '.selected($value,'ua',false).' value="ua">Украина</option> <option '.selected($value,'us',false).' value="us">США</option> </select>';
значение переменной $value получайте из произвольного поля