Intereting Posts
Предоставляет ли WP «из коробки» фотографии профиля пользователя? Добавлен фильтр даты в список популярных сообщений 3.1 форматы сообщений и конкретные категории / пользовательские таксономии Где и как установить встроенные js на страницах Неправильный идентификатор Разное количество сообщений, отображаемых в области разработки и производства Пользовательская структура URL-адреса типа post с именем site.com/custom_taxonomy_slug/post_name TinyMCE style_select – добавить классы Каковы преимущества использования wp_enqueue_script? WordPress для сайта бизнес-каталога Именование скрипта правильно обрабатывается Отображать поле автора только на определенных должностях категории? Автоматическое создание сообщения с последними 10 изображениями в каталоге WordPress Отключить вкладки сообщений JQuery UI Вставка кода в предварительно форматированный текст в Visual Editor, не работающем в 3.3.1

Добавление дополнительных переменных на странице меню

Я изучаю PHP, создавая плагин для отображения или скрыть пункты меню на основе местоположения пользователя. Я немного застрял в данный момент.

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

Я хочу, чтобы первый вариант был проверен по умолчанию.

function option( $fields, $item_id ) { ob_start(); ?> <p class="field-visibility description description-wide"> <label for="edit-menu-item-visibility-<?php echo $item_id; ?>"> <?php _e('Enter country code(s) separated with commas') ?>: <input type="text" class="widefat code" id="edit-menu-item-visibility-<?php echo $item_id; ?>" name="menu-item-visibility[<?php echo $item_id; ?>]" value="<?php echo esc_html( get_post_meta( $item_id, 'locations', true ) ); ?>" /></br> <input type="radio" id="edit-menu-item-visibility-<?php echo $item_id; ?>" name="menu-item-show-hide[<?php echo $item_id; ?>]" value="<?php echo get_post_meta( $item_id, 'hide', true ); ?>" />Hide from these locations.</br> <input type="radio" id="edit-menu-item-visibility-<?php echo $item_id; ?>" name="menu-item-show-hide[<?php echo $item_id; ?>]" value="<?php echo get_post_meta( $item_id, 'show', true ); ?>" />Only show to these locations.</br> </label> </p> <?php $fields[] = ob_get_clean(); return $fields; } 

Вот текущий вывод:

введите описание изображения здесь

В идеале я бы использовал переключатели для установки переменной с именем $ visible true или false. Но я не был уверен, как это сделать.

Заранее спасибо!

Используйте проверенную функцию. https://codex.wordpress.org/Function_Reference/checked

HTML, который вы хотите отобразить, должен выглядеть так:

 <input ... value="hide" checked="checked" />Hide from these locations.</br> <input ... value="show" />Only show to these locations.</br> 

То, что вы получаете, вероятно, похоже на это:

 <input ... value="hide" />Hide from these locations.</br> <input ... value="" />Only show to these locations.</br> 

Это должно помочь:

 <input type="radio" id="edit-menu-item-visibility-<?php echo $item_id;>" name="menu-item-show-hide[<?php echo $item_id; ?>]" value="hide" <?php checked( get_post_meta( $item_id, 'hide_show', true ), 'hide', true ); ?>" />Hide from these locations.</br> <input type="radio"id="edit-menu-item-visibility-<?php echo $item_id; ?>" name="menu-item-show-hide[<?php echo $item_id; ?>]" value="show" <?php checked( get_post_meta( $item_id, 'hide_show', true ), 'show', true ); ?>" /> 

Показывать только эти местоположения.