Intereting Posts
Почему get_the_time ('F j') возвращается 30 ноября для всех сообщений? Как получить все элементы таксономии, даже если у него нет специального типа сообщений? WordPress Shortcode для баннера, в котором переданный атрибут может содержать несколько предопределенных значений Установленное местоположение WordPress такая же постоянная ссылка для родительской категории и категории детей удалить sanitize_title () для register_taxonomy () Почему get_terms () ведет себя странно при вызове в admin (для использования в мета-окне)? Можно ли создавать вложенные списки в редакторе WYSIWYG? Получать сообщения по списку идентификаторов сообщений, упорядоченных по этим идентификаторам? Как подключить контейнер <head> </ head> Переписывание страницы поддомена в одной установке WordPress в родительский домен на другом В любом случае, чтобы указать, что должно появиться в <title> в .php-файле? «Post-format» список фрагментов кода Изменение Genesis <title> Тег с шаблона страницы Не удается перенаправить работу

Добавление пользовательских полей в меню навигации WordPress

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

приведенный ниже код показывает шаги для создания настраиваемого поля флажка>

он содержит любую ошибку?

сначала я создал ключ-ключ в базе данных

function YPE_setup_custom_fields($item) { $item->divider = get_post_meta($item->ID, '_menu_item_divider', true); } add_filter('wp_setup_nav_menu_item', 'YPE_setup_custom_fields'); 

то я создал для него значение обновления

 function YPE_update_custom_fields($menu_id, $menu_item_db_id, $menu_item_data) { if (is_array($_REQUEST['menu-item-divider'])) { $YPE_divider_value = $_REQUEST['menu-item-divider'][$menu_item_db_id]; update_post_meta($menu_item_db_id, '_menu_item_divider', $YPE_divider_value); } add_action('wp_update_nav_menu_item', 'YPE_update_custom_fields', 10, 3); 

то я создал новый класс (Walker_Nav_Menu_Edit_Custom)

 function YPE_edit_custom_walker($walker, $item_id) { return 'Walker_Nav_Menu_Edit_Custom'; } add_filter('wp_edit_nav_menu_walker', 'YPE_edit_custom_walker', 10, 2); 

то я добавил флажок в свой новый класс (Walker_Nav_Menu_Edit_Custom)

 <p class="field-link-divider description"> <label for="edit-menu-item-divider-<?php echo $item_id; ?>"> <input type="checkbox" id="edit-menu-item-divider-<?php echo $item_id; ?>" value="_blank" name="menu-item-divider[<?php echo $item_id; ?>]"<?php checked( $item->divider, '_blank' ); ?> /> <?php _e( 'Show divider' ); ?> </label> </p> 

Solutions Collecting From Web of "Добавление пользовательских полей в меню навигации WordPress"

После некоторого поиска решения этой проблемы я нашел правильный ответ для решения этой проблемы в значениях метаданных обновления, особенно в флажке, немного отличающемся от других входных тегов Html, таких как текст, теги

когда мы используем update_post_meta для checked флажка. в то же время мы используем update_post_meta для update_post_meta с флажка

Я решил свою проблему, например, ниже. только я удалил сообщение meta, когда снял флажок

 function YPE_update_custom_fields($menu_id, $menu_item_db_id, $menu_item_data) { if (is_array($_REQUEST['menu-item-divider'])) { $YPE_divider_value = ; update_post_meta($menu_item_db_id, '_menu_item_divider', $_REQUEST['menu-item-divider'][$menu_item_db_id]); } else { delete_post_meta($menu_item_db_id, '_menu_item_divider'); } add_action('wp_update_nav_menu_item', 'YPE_update_custom_fields', 10, 3);