Я работаю над темой для wordrpess, где я хочу добавить опцию администратора страницы для настроек темы. Не могу заставить мой мозг работать с процессом. вот мой код:
$option_settings = (array(
array('Section1', array(
array( 'ID'=>'id_name1',
'Label'=>'Title1',
'Value'=>'The title1 bar',
'Desc'=>'Description Goes Here1',
'Type'=>'input_text',
'Button'=>'upload'
),
array('Section2', array(
array( 'ID'=>'id_name2',
'Label'=>'Title2',
'Value'=>'The title2 bar',
'Desc'=>'Description Goes Here2',
'Type'=>'input_text',
'Button'=>'upload'
),
))
));
if (!get_option('my_option_settings')) {
add_option('my_option_settings',$option_settings);
}
$options = get_option('my_option_settings');
if ($_REQUEST['save_settings']) {
//this is where my brain snaps huhu
}
echo '<form method="post" action="index.php" id="form_settings">';
echo '<p class="submit message"><input type="submit" value="Save Changes" name="save_settings" /></p>';
foreach ($options as $section) {
echo '<h3>'.$section[0].'</h3>';
foreach ($section[1] as $option => $value) {
switch($value['Type']) {
case "input_text":
echo '<p><strong>'.$value[Label].'</strong> <input type="text" name="'.$value['ID'].'" id="'.$value['ID'].'" value="'.$value['Value'].'" /></p>';
break;
}
}
echo '</form>';
Моя главная проблема заключается в том, как мне отредактировать массив внутри массива и как передать запрос. Любая помощь высоко ценится. Заранее спасибо.
Обновленный вопрос:
ok, допустим, что $ option-settings - это содержимое базы данных опций из Wordpress. Причина в том, что я хотел бы иметь только 1 опцию в базе данных WordPress и просто хранить их в массиве для более упорядоченных данных.
Сначала нужно получить значение и присвоить его переменной:
$fetchOption = get_option('my_option_settings');
теперь я буду редактировать или обновлять массив внутри переменной $ fetchOption.
foreach ($options as $section) {
foreach ($section[1] as $option => $value) {
$value['Value'] = [$_POST[$value['ID']]];
}
}
Последнее - это как вернуть измененное значение в переменную $ fetchOption и обновить базу данных с помощью update_options ('my_option_settings', $ fetchOption).
Это уместно или нет? Какова лучшая практика для этого? Я мог бы просто назначить им один вариант, но я думаю, это немного грязно. еще раз спасибо!