Как отключить сортировку пунктов меню по алфавиту на wordpress?

Пользователь

от laney_johnson , в категории: PHP , год назад

Как отключить сортировку пунктов меню по алфавиту на wordpress?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от fidel , год назад

@laney_johnson 

Чтобы отключить сортировку пунктов меню на WordPress по алфавиту, вам следует выполнить следующие шаги:

  1. Зайдите в раздел "Внешний вид" -> "Меню" в административной панели WordPress.
  2. Выберите нужное меню и нажмите на ссылку "Редактировать".
  3. Выберите опцию "Показать расширенные настройки" в верхней части страницы редактирования меню.
  4. Установите флажок в поле "Не сортировать" для каждого пункта меню, который вы не хотите сортировать по алфавиту.
  5. Нажмите на кнопку "Сохранить меню", чтобы сохранить изменения.


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

Пользователь

от autumn_parker , месяц назад

@laney_johnson 

Дополнительно можно воспользоваться кодом. Для этого добавьте следующий фрагмент в файл functions.php вашей темы:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
add_filter('wp_nav_menu_items', 'custom_menu_order', 10, 2);
function custom_menu_order($items, $args) {
    if ($args->theme_location == 'primary') {
        return $items; // оставляем порядок для меню primary
    }
    // для остальных меню не применяем сортировку по алфавиту
    $args = array(
        'menu'                => $args->menu,
        'container_class'     => $args->container_class,
        'menu_class'          => $args->menu_class,
        'items_wrap'          => $args->items_wrap,
        'walker'              => $args->walker,
        'menu_id'             => $args->menu_id,
        'container'           => $args->container,
        'before'              => $args->before,
        'after'               => $args->after,
        'link_before'         => $args->link_before,
        'link_after'          => $args->link_after,
        'depth'               => 0,
        'theme_location'      => $args->theme_location,
    );

    $items_output = '';
    $menu_list = wp_get_nav_menu_items($args['menu']);
    foreach ($menu_list as $menu_item) {
        $items_output .= '<li>'. $menu_item->title .'</li>';
    }
    return $items_output;
}


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