За последние 24 часа нас посетил 6591 программист и 529 роботов. Сейчас ищут 209 программистов ...

Как заносить данные в wp_options через options.php?

Тема в разделе "Wordpress", создана пользователем Jerald, 1 июн 2018.

  1. Jerald

    Jerald Новичок

    С нами с:
    1 июн 2018
    Сообщения:
    7
    Симпатии:
    0
    Код (Text):
    1.  
    2. function fill_primer_field(){
    3.         <input type="text" name="option_name[input]" value="Добавить строку" />
    4.     <?php
    5. }
    6.  
    Как сделать так, что бы строки добавлялись в wp_options а не перезаписывались?
     
  2. Sail

    Sail Активный пользователь

    С нами с:
    1 ноя 2016
    Сообщения:
    819
    Симпатии:
    173
    @Jerald, читали: add_option()

    И что есть 'input' в качестве предполагаемого имени опции (в option_name[input])?
    Почему именно input, почему без апострофов?
     
  3. Jerald

    Jerald Новичок

    С нами с:
    1 июн 2018
    Сообщения:
    7
    Симпатии:
    0
    input выходит индексом массива в option_name.
     
  4. Sail

    Sail Активный пользователь

    С нами с:
    1 ноя 2016
    Сообщения:
    819
    Симпатии:
    173
    @Jerald, для того, чтобы опции не перезаписывались, они должны иметь уникальное имя.
    Каким образом формируется имя, из приведенного кода не ясно.
    Но если имя опции везде 'input', то... :confused:
     
  5. Jerald

    Jerald Новичок

    С нами с:
    1 июн 2018
    Сообщения:
    7
    Симпатии:
    0
    Я уже пытался генерить числовые индексы в цикле. Ерунда какая-то выходит. Опция всё равно перезаписывается в последний числовой ключ.
     
  6. Sail

    Sail Активный пользователь

    С нами с:
    1 ноя 2016
    Сообщения:
    819
    Симпатии:
    173
    @Jerald, читаем имеющиеся опции - выводим их, или не выводим...
    потом - "добавить строку" - поле для ещё одного значения ...
    Пока разбирали для вывода имеющиеся опции - узнали их имена (или индексы, или ещё чего...).
    Перед выводом строки для новой - сформировали уникальное имя и указали его в качестве атрибута name
    При, например, обработке form submit - записали.
    Всё в общем-то просто.
     
  7. Jerald

    Jerald Новичок

    С нами с:
    1 июн 2018
    Сообщения:
    7
    Симпатии:
    0
    Один add_settings_field - это по любому выходит одна строка в массиве. В общем, пытался я сделать, как вы описали. Не выходит ничего.
     
  8. Sail

    Sail Активный пользователь

    С нами с:
    1 ноя 2016
    Сообщения:
    819
    Симпатии:
    173
    Так проконтролируйте ожидаемый и полученный результат на каждом шаге.
     
  9. Jerald

    Jerald Новичок

    С нами с:
    1 июн 2018
    Сообщения:
    7
    Симпатии:
    0
    При каждом сабмите происходит обновление ячейки таблицы в БД. Дать новое имя значению не сложно. Старые исчезают.
     
  10. Sail

    Sail Активный пользователь

    С нами с:
    1 ноя 2016
    Сообщения:
    819
    Симпатии:
    173
    не каждый submit проконтролировать, а каждый шаг выполнения алгоритма.
    Что прочитали, что вывели, что вычислили, что и как пытаемся записать...
     
  11. Jerald

    Jerald Новичок

    С нами с:
    1 июн 2018
    Сообщения:
    7
    Симпатии:
    0
    Как сделать, что бы код исполнялся только если был сабмит?
     
  12. Sail

    Sail Активный пользователь

    С нами с:
    1 ноя 2016
    Сообщения:
    819
    Симпатии:
    173
    Например, проверив $_SERVER['REQUEST_METHOD'], если речь о коде php-скрипта...
     
  13. Jerald

    Jerald Новичок

    С нами с:
    1 июн 2018
    Сообщения:
    7
    Симпатии:
    0
  14. Sail

    Sail Активный пользователь

    С нами с:
    1 ноя 2016
    Сообщения:
    819
    Симпатии:
    173
    Проверьте атрибут method формы (<form method="...">, можно посмотреть, например, в "коде html" в браузере)