Я создаю виджет, он должен хранить около 10 идентификаторов. Прямо сейчас я использую следующий метод поля для хранения каждого идентификатора в отдельном поле. Он хранит данные каждого поля в отдельности в WordPress. Можно ли хранить данные всех полей в одной строке в WordPress для проверки с использованием массива?
<input
class="widefat"
id="<?php echo $this->get_field_id('item1_id'); ?>"
name="<?php echo $this->get_field_name('item1_id'); ?>"
value="<?php echo $instance['item1_id']; ?>"
/>
<input
class="widefat"
id="<?php echo $this->get_field_id('item2_id'); ?>"
name="<?php echo $this->get_field_name('item2_id'); ?>"
value="<?php echo $instance['item2_id']; ?>"
/>
$instance
является массивом и содержит все значения. И что вы подразумеваете под «хранить данные всех полей в одной строке»? Вы имели в виду одну строку базы данных?Ответы:
Вы должны собрать несколько полей под одним и тем же именем, как это ...
… И настройте логику виджета на это.
Вот очень простой демонстрационный виджет:
Backend
Внешний интерфейс
источник
printf
синтаксисclass="widefat"
для полей.Приведенный выше ответ хорош, если вам нужно, чтобы поля были пронумерованы. В моем случае я не сделал. У меня есть виджет с параметрами, которые позволяют пользователю выбирать любое количество категорий для использования в виджете.
Вот мой виджет
form
. - Три важные вещи здесьarray()
если значение виджета не установлено<label>
name
атрибуте формы обратите внимание, что я добавляю[]
в конце. Это говорит PHP, что я отправляю массив значений для этого ключа<label><input type="checkbox" ...></label>
. - Каждый из наших флажков не будет иметь уникальныйid
атрибут, поэтому<label>
for
атрибут не будет работать. Мы могли бы генерировать уникальные идентификаторы, но это хлопотно. Если вы просто оберните метку вокруг входа, метка будет правильно ассоциирована без необходимости подключенияfor
+id
Теперь код
И вот моя функция обновления
Я заинтересован в сохранении Категории идентификаторов в массиве, которые являются числами, поэтому я использую
array_map
с ,intval
чтобы гарантировать , что все отправленные ИГД являются действительными числами. Кроме того, я используюarray_filter
для удаления любых недействительных представлений.Особенно сложно описать этот материал WordPress. Если у вас есть какие-либо вопросы, я буду рад разработать.
источник