Ответы в темах

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • 800 элементов — это правильное решение в нашем случае, новый Муниципальный сайт, это уже далеко не блог 🙂 В нашем случае острая необходимость в том чтобы меню было хорошее и работало правильно.

    Точно Вам говорю это не из-за Max Mega Menu, кто то из разработчиков упустил этот критически важный момент, в который упираются все серьёзные пользователи системы WordPress.

    Виновник испорченного кода в 6.7.1 … class-walker-nav-menu-edit.php (

                <div class="field-move-combo description-group">
    <p class="description description-wide">
    <label for="edit-menu-item-parent-<?php echo $item_id; ?>">
    <?php _e( 'Menu Parent' ); ?>
    </label>
    <select class="edit-menu-item-parent widefat" id="edit-menu-item-parent-<?php echo $item_id; ?>" name="menu-item-parent[<?php echo $item_id; ?>]">
    </select>
    </p>
    <p class="description description-wide">
    <label for="edit-menu-item-order-<?php echo $item_id; ?>">
    <?php _e( 'Menu Order' ); ?>
    </label>
    <select class="edit-menu-item-order widefat" id="edit-menu-item-order-<?php echo $item_id; ?>" name="menu-item-order[<?php echo $item_id; ?>]">
    </select>
    </p>
    </div>

    в этот edit-menu-item-parent и edit-menu-item-order загружается вся структура существующего меню (повторение 800). Т.е. каждый пункт меню содержит в себе select с повторением 800 итого 800*800=640000 и все это для javascript вызывает нагрузку до 10 минут для отображения страницы… 🙁

    Я исправил эту ошибку — время формировнаия страницы редактирования меню от 9 до 20 секунд(!) Ура победа.

    В итоге перешел на новую версию 6.7.1 (она мне нравиться чистотой кода и скоростью), но сделал следующие исправления

    30/01/2025

    Действие: Replace nav-menu object (all code files) in 6.7.1 from 6.6.2
    Результат: Исправлена ошибка зависания интерфейса редактирования элементов меню, которая проявляется с версии 6.7

    \iwa.toprayon.ru\mnt\toprayon.ru\wp-admin\includes
    class-walker-nav-menu-edit.php (файл вывода формы html шаблон)

                <p class="field-link-target description" style="display:none">
                    <label for="edit-menu-item-target-<?php echo $item_id; ?>">
                        <input type="checkbox" id="edit-menu-item-target-<?php echo $item_id; ?>" value="_blank" name="menu-item-target[<?php echo $item_id; ?>]"<?php checked( $menu_item->target, '_blank' ); ?> />
                        <?php _e( 'Open link in a new tab' ); ?>
                    </label>
                </p>
    
                    <span style="display:none">
                    <button type="button" class="button-link menus-move menus-move-left" data-dir="left"></button>
                    <button type="button" class="button-link menus-move menus-move-right" data-dir="right"></button>
                    </span>

    \iwa.toprayon.ru\mnt\toprayon.ru\wp-admin
    nav-menus.php

    \iwa.toprayon.ru\mnt\toprayon.ru\wp-admin\js
    nav-menu.js
    nav-menu.min.js

    \iwa.toprayon.ru\mnt\toprayon.ru\wp-includes
    nav-menu.php
    nav-menu-template.php
    class-walker-nav-menu.php

    ***************************************************************************

    ПРЕДЛАГАЮ СДЕЛАТЬ ВЕСЬ ИНТЕРФЕЙС РЕДАКТИРОВАНИЯ НАВИГАЦИОННОГО МЕНЮ НА AJAX событиях. Не удаляйте интерфейс редактирования навигационного меню — это правильный путь, порядок, ядро, удобство для разработчиков и конечных пользователей.

    С уважением, Алексей

    • Ответ изменён 11 месяцев, 3 недели назад пользователем iallixey.

    Просто уперся в ошибку и решил обозначить её тут 🙂 Имейте ввиду. Глупый код ради визуального результата — думаю студенты писали.

Просмотр 2 ответов — с 1 по 2 (всего 2)