Для добавления чекбокса в расширенные свойства меню в WordPress, вам нужно использовать хуки и функции WordPress API для создания и обработки дополнительных полей. Вот пример, как это сделать:
Добавление чекбокса в форму редактирования меню
Используйте хук wp_nav_menu_item_custom_fields
для добавления поля в форму редактирования меню:
add_action('wp_nav_menu_item_custom_fields', 'add_custom_checkbox_field', 10, 4);
function add_custom_checkbox_field($item_id, $item, $depth, $args) {
$custom_checkbox = get_post_meta($item_id, '_custom_checkbox', true);
?>
<p class="field-custom field-custom-checkbox description-wide">
<label for="edit-menu-item-custom-checkbox-<?php echo $item_id; ?>">
<input type="checkbox" id="edit-menu-item-custom-checkbox-<?php echo $item_id; ?>" name="menu-item-custom-checkbox[<?php echo $item_id; ?>]" value="1" <?php checked($custom_checkbox, 1); ?> />
<?php _e('Custom Checkbox', 'text-domain'); ?>
</label>
</p>
<?php
}
Сохранение значения чекбокса
Используйте хук wp_update_nav_menu_item
для сохранения значения чекбокса при сохранении меню:
add_action('wp_update_nav_menu_item', 'save_custom_checkbox_field', 10, 3);
function save_custom_checkbox_field($menu_id, $menu_item_db_id, $args) {
if (isset($_POST['menu-item-custom-checkbox'][$menu_item_db_id])) {
$custom_checkbox = 1;
} else {
$custom_checkbox = 0;
}
update_post_meta($menu_item_db_id, '_custom_checkbox', $custom_checkbox);
}
Использование значения чекбокса
Если вы хотите использовать значение чекбокса в своем шаблоне меню, вы можете получить его с помощью get_post_meta
:
$custom_checkbox = get_post_meta($item->ID, '_custom_checkbox', true);
if ($custom_checkbox) {
// Ваш код для отображения или использования чекбокса
}
Этот код добавляет чекбокс в раздел расширенных свойств каждого элемента меню, сохраняет его значение и позволяет вам использовать это значение в вашем шаблоне. Не забудьте заменить 'text-domain'
на домен вашего текста.