Здраствуйте.
Попытался добавить в форму свои зависимые поля для выбора города в зависимости от выбора региона по инструкции из статьи
Поля добавились в форму и данные из этих полей сохраняются в базу при публикации записи,но при редактировании записи эти поля пустые т.е. не отображаются уже введённые и сохранённые данные.Я думал что я что-то сделал не так поэтому добавил поле точно как в статье
но результат тот же в форме редактирование записи сохранённые данные в поле не выводится.
Отсюда вопрос-как вывести уже сохранённые данные в добавленном поле в форме редактирования записи.
Я же пробовал добавлять поля так
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 получайте из произвольного поля