## Функция _WP_MENU_ITEM_CLASSES_BY_CONTEXT()
Функция _wp_menu_item_classes_by_context() добавляет классы к элементам меню в зависимости от текущего контекста, если это необходимо.
### Важная информация
- Это внутреняя функция, предназначенная для использования только в самом ядре WordPress.
- Не рекомендуется использовать эту функцию в вашем коде.
### Возврат значения
- null — функция ничего не возвращает.
### Использование
Чтобы использовать функцию, вы должны передать ей массив с элементами меню:
```php
_wp_menu_item_classes_by_context( $menu_items );
Параметры
- $menu_items (array) — Обязательный. Массив объектов текущих элементов меню, к которым нужно добавить информацию о классах. Передается по ссылке.
Пример
Предположим, у вас есть массив элементов меню, у которых нет классов. Вы можете передать этот массив функции, которая добавит нужные классы.
// $menu_items - это массив объектов меню с пустым массивом классов
_wp_menu_item_classes_by_context( $menu_items );
Массив объектов меню ДО использования функции:
Array
(
[0] => WP_Post Object
(
[ID] => 305
[classes] => Array (
[0] =>
)
...
[menu_order] => 1
[post_type] => nav_menu_item
...
)
)
Массив объектов меню ПОСЛЕ использования функции:
Array
(
[0] => WP_Post Object
(
[ID] => 305
[classes] => Array(
[0] =>
[1] => menu-item
[2] => menu-item-type-post_type
[3] => menu-item-object-page
)
...
)
)
Примечания
- Глобальная переменная
WP_Query($wp_query) — объект запроса WordPress. - Глобальная переменная
WP_Rewrite($wp_rewrite) — компонент перезаписи WordPress.
Изменения
- Функция была введена в версии 3.0.0.
Код функции
Вот код функции _wp_menu_item_classes_by_context():
function _wp_menu_item_classes_by_context( &$menu_items ) {
global $wp_query, $wp_rewrite;
$queried_object = $wp_query->get_queried_object();
$queried_object_id = (int) $wp_query->queried_object_id;
$active_object = '';
$active_ancestor_item_ids = array();
$active_parent_item_ids = array();
$active_parent_object_ids = array();
$possible_taxonomy_ancestors = array();
$possible_object_parents = array();
$home_page_id = (int) get_option( 'page_for_posts' );
// Основная логика функции здесь...
}
Заключение
Функция _wp_menu_item_classes_by_context() помогает динамически добавлять классы к элементам меню в зависимости от контекста, что делает меню более адаптивным к изменениям в содержимом сайта. Хотя эта функция является внутренней, понимание её работы может помочь вам лучше разбираться в том, как функционирует меню в WordPress.