smsc banner 468x60smsc banner 728x90smsc banner 930x180beget banner 468x60beget banner 728x90beget banner 930x180skillbox banner 468x60skillbox banner 728x90skillbox banner 930x180

Как добавить чекбокс в расширенные свойства меню WordPress

Для добавления чекбокса в расширенные свойства меню в 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' на домен вашего текста.

beget banner 480x320beget banner 728x90beget banner 120x600kwork banner 480x320kwork banner 728x90kwork banner 120x600etxt banner 480x320etxt banner 728x90etxt banner 120x600

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Похожие посты

Как на pre_get_posts сделать сортировку по мета полю, значение которого является числом от большего к меньшему

Чтобы сделать сортировку по мета-полю (мета-записи) в WordPress с использованием хука pre_get_posts, можно добавить кастомный код в файл функций темы (например, functions.php). При этом нужно указать, что сортировка должна быть по значению мета-поля, которое является числом (например, от большего к меньшему). Пример кода: Объяснение: Если вы используете какой-то другой тип постов или условия для запроса…
Подробнее

Как на хуке pre_get_posts проверить post_type текущего запроса

Чтобы проверить тип записи (post_type) в запросе на хуке pre_get_posts, вы можете использовать объект запроса $query. Вот пример кода, который показывает, как это сделать: Пояснение: Таким образом, вы сможете проверить и управлять параметрами запроса в зависимости от типа записи.
Подробнее

Как в запросе wp_query исключить посты имеющие родительский пост, WordPress

Чтобы исключить посты, у которых есть родительский пост (т.е. дочерние посты), в запросе WP_Query, нужно использовать аргумент post_parent. Этот аргумент контролирует, есть ли у поста родитель или нет. Для исключения дочерних постов нужно указать условие post_parent => 0, что означает, что только посты без родителя (т.е. верхнего уровня) будут включены в выборку. Вот пример запроса:…
Подробнее