Intereting Posts
Сортировка сообщений по нескольким значениям в сочетании Какой метод использовать при удалении сообщений из интерфейса Заполненные сценарии и стили загружаются в панель инструментов WordPress. боковая панель боковой страницы архива не работает WordPress Автоматическое тестирование Probelm async javascript и css для wordpress Изображение автоматически изменено Как определить, есть ли is_404 () или is_page () или etc …? Проблемы с отладочной производительностью Отменить сообщение (нет показов)? Заголовок страницы не отображается Добавление последней страницы в начало и первую страницу в конец следующей и предыдущей страниц. Функция ссылок Как изменить настройки администратора моего плагина, чтобы плагин можно было добавить на конкретную страницу? Устранение внешнего вида определенного пользовательского поля в сообщении Поиск сообщений, в которых отсутствует определенное настраиваемое поле

Функция Checked () на многомерном массиве

Я динамически генерирую флажки на одной из страниц параметров. Этот код, который я использую для создания нескольких флажков:

<?php foreach($shopCategories as $shopCategory) { ?> <input type="checkbox" value="<?php echo $shopCategory->term_id; ?>" name="term_meta[ss_aff_categories][]" <?php checked($term_meta['ss_aff_categories'], $shopCategory->term_id, true) ?>> <?php echo $shopCategory->name; ?><br/> <?php } ?> 

Проблема в том, что при наличии функции checked() я получаю уведомление:

Примечание. Преобразование массива в строку … в wp-includes / general-template.php в строке 3099

Функция не проверяет выбранные поля.

Я думаю, что он не может обрабатывать несколько массивов ( name="term_meta[ss_aff_categories][]" ) в этой настройке.

Как я могу применить функцию checked() для проверки значений в многомерном массиве – аналогично приведенному выше?

Solutions Collecting From Web of "Функция Checked () на многомерном массиве"

Вопрос давно, но только для справки, в этом конкретном случае, и если кто-то просто хочет использовать checked функцию с тем, что кажется array (вместо того, чтобы проверять и выводить «проверено» на месте) здесь находится решение:

 checked( in_array( $shopCategory->term_id, $term_meta['ss_aff_categories'] ) ) 

Это работает, потому что checked может принимать только один аргумент и сравнивать его значение со вторым аргументом по умолчанию, для которого установлено значение boolean true . Поэтому в этом случае, если значение $shopCategory->term_id находится в $term_meta['ss_aff_categories'] функция $term_meta['ss_aff_categories'] вернет логическое значение true . В конечном счете, значение, которое мы передаем checked , вместе со вторым аргументом по умолчанию checked , преобразуется в строки и сравнивается.