2017-01-26 5 views
1

Я создаю параметр темы admin в WordPress. Все работает отлично, за исключением одной функции «Вариант обновления», когда я вношу изменения с помощью панели администрирования параметров и сохраняю изменения, я получаю настройки параметров «сообщений». но когда я проверяю свою страницу, я вижу, что ничего не изменилось.Обновление опции в WordPress

Вот мой код для обновления или сохранения опции:

function mytheme_add_admin() { 

    global $themename, $shortname, $options; 

    if ($_GET['page'] == basename(__FILE__)) { 

     if ('save' == $_REQUEST['action']) { 

      foreach ($options as $value) { 
       update_option($value['id'], $_REQUEST[ $value['id'] ]); 
      } 

      foreach ($options as $value) { 
       if(isset($_REQUEST[ $value['id'] ])) 
       { 
        update_option($value['id'], $_REQUEST[ $value['id'] ] ); 
       } 
       else { 
        delete_option($value['id']); 
       } 
      } 

      header("Location: admin.php?page=functions.php&saved=true"); 
      die; 

     } 
     else if('reset' == $_REQUEST['action']) { 

      foreach ($options as $value) { 
       delete_option($value['id']); 
      } 

      header("Location: admin.php?page=functions.php&reset=true"); 
      die; 

     } 
    } 

    add_menu_page($themename, $themename, 'administrator', basename(__FILE__), 'mytheme_admin'); 
} 

function mytheme_add_init() { 

} 

Что случилось с моим кодом?

+1

Вы проверили таблицу? –

+0

Что вы имеете в виду? не могли бы вы объяснить.? –

+0

Вы говорили, что ничего не изменилось, поэтому я просил, чтобы значение хранилось в таблице или нет? –

ответ

1

Вы забыли оператор else, который будет извлекать и показывать значения параметров.

Вот некоторые пояснения:

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

Небольшой пример:

if('save' == $_REQUEST['action']){ 
    // use update_option 
} 
elseif('reset' == $_REQUEST['action']){ 
    // use delete_option 
} 
else{ 
    // use get_option 
} 

глобальный $ вариант вы спросите в верхней части функции связана с именем, которое вы должны быть уникальными, то есть: my_theme_options['ID'], когда вы извлекаете вариант, вариант сохранения , вам нужно указать его. Например:

$options = get_option('my_theme_option'); 

Тогда для отображения значения параметра, вы получите его с $options['ID'];

Таким образом, чтобы отобразить окно ввода, вам нужно что-то вроде этого:

echo '<input name="my_theme_options[ID]" value="'.$options['ID'].'" type="text"/>'; 

Вам нужно для адаптации этого в вашем цикле foreach с любым вводом или тегом формы формы.

Надеюсь, вы понимаете, о чем я говорю!

+0

Не могли бы вы объяснить? –

Смежные вопросы