Как устроено wp_nav_menu
Чтобы лучше понимать как работать с wp_nav_menu() разберемся немного как оно устроено.
Читайте также: wp_nav_menu().
Функции меню.
Taxonomy
Само меню - это таксономия (термин) типа nav_menu
:
При этом в метаполях термина пусто:
$ wp term meta list 37 +---------+----------+------------+ | term_id | meta_key | meta_value | +---------+----------+------------+ +---------+----------+------------+
Для получения такого объекта термина есть функция wp_get_nav_menu_object().
print_r( wp_get_nav_menu_object( 37 ) ); /* WP_Term Object ( [term_id] => 37 [name] => Футер [slug] => futer [term_group] => 0 [term_taxonomy_id] => 37 [taxonomy] => nav_menu [description] => [parent] => 0 [count] => 1 [filter] => raw ) */
Post
Элементы меню это записи типа nav_menu_item
.
Произвольная ссылка:
wp post get 44001 +-----------------------+------------------------+ | Field | Value | +-----------------------+------------------------+ | ID | 44001 | | post_author | 1 | | post_date | 2022-08-27 10:39:24 | | post_date_gmt | 2022-06-12 11:27:02 | | post_content | | | post_title | Паблик в телеграм | | post_excerpt | | | post_status | publish | | comment_status | closed | | ping_status | closed | | post_password | | | post_name | pablik-v-telegram | | to_ping | | | pinged | | | post_modified | 2022-08-27 10:39:24 | | post_modified_gmt | 2022-08-27 07:39:24 | | post_content_filtered | | | post_parent | 0 | | guid | /pablik-v-telegram/ | | menu_order | 1 | | post_type | nav_menu_item | | post_mime_type | | | comment_count | 0 | +-----------------------+------------------------+ $ wp post meta list 44001 +---------+-----------------------------+----------------------+ | post_id | meta_key | meta_value | +---------+-----------------------------+----------------------+ | 44001 | _menu_item_type | custom | | 44001 | _menu_item_menu_item_parent | 0 | | 44001 | _menu_item_object_id | 44001 | | 44001 | _menu_item_object | custom | | 44001 | _menu_item_target | | | 44001 | _menu_item_classes | a:1:{i:0;s:0:"";} | | 44001 | _menu_item_xfn | | | 44001 | _menu_item_url | https://t.me/JUXIeQo | | 44001 | _wp_old_date | 2022-06-12 | +---------+-----------------------------+----------------------+
Ссылка созданная из страницы/поста ВП:
$ wp post get 10253 +-----------------------+----------------------+ | Field | Value | +-----------------------+----------------------+ | ID | 10253 | | post_author | 1 | | post_date | 2022-08-27 10:39:24 | | post_date_gmt | 2019-11-25 11:34:57 | | post_content | | | post_title | Обратная связь | | post_excerpt | | | post_status | publish | | comment_status | closed | | ping_status | closed | | post_password | | | post_name | obratnaya-svyaz | | to_ping | | | pinged | | | post_modified | 2022-08-27 10:39:24 | | post_modified_gmt | 2022-08-27 07:39:24 | | post_content_filtered | | | post_parent | 0 | | guid | /obratnaya-svyaz/ | | menu_order | 3 | | post_type | nav_menu_item | | post_mime_type | | | comment_count | 0 | +-----------------------+----------------------+ $ wp post meta list 10253 +---------+-----------------------------+-------------------+ | post_id | meta_key | meta_value | +---------+-----------------------------+-------------------+ | 10253 | _menu_item_type | post_type | | 10253 | _menu_item_menu_item_parent | 0 | | 10253 | _menu_item_object_id | 1667 | | 10253 | _menu_item_object | page | | 10253 | _menu_item_target | | | 10253 | _menu_item_classes | a:1:{i:0;s:0:"";} | | 10253 | _menu_item_xfn | | | 10253 | _menu_item_url | | | 10253 | _wp_old_date | 2019-11-25 | | 10253 | _wp_old_date | 2022-06-07 | +---------+-----------------------------+-------------------+
Сыылка созданная из термина:
$ wp post get 10259 +-----------------------+--------------------------------------------------------------+ | Field | Value | +-----------------------+--------------------------------------------------------------+ | ID | 10259 | | post_author | 1 | | post_date | 2019-11-25 14:44:24 | | post_date_gmt | 2019-11-25 11:44:24 | | post_content | Публикуем всегда свежие и последние обзоры рынка на сегодня. | | post_title | Аналитика | | post_excerpt | | | post_status | publish | | comment_status | closed | | ping_status | closed | | post_password | | | post_name | analitika | | to_ping | | | pinged | | | post_modified | 2019-11-25 14:44:24 | | post_modified_gmt | 2019-11-25 11:44:24 | | post_content_filtered | | | post_parent | 0 | | guid | https://holder.loc/?p=10259 | | menu_order | 1 | | post_type | nav_menu_item | | post_mime_type | | | comment_count | 0 | +-----------------------+--------------------------------------------------------------+ $ wp post meta list 10259 +---------+-----------------------------+-------------------+ | post_id | meta_key | meta_value | +---------+-----------------------------+-------------------+ | 10259 | _menu_item_type | taxonomy | | 10259 | _menu_item_menu_item_parent | 0 | | 10259 | _menu_item_object_id | 4 | | 10259 | _menu_item_object | category | | 10259 | _menu_item_target | | | 10259 | _menu_item_classes | a:1:{i:0;s:0:"";} | | 10259 | _menu_item_xfn | | | 10259 | _menu_item_url | | +---------+-----------------------------+-------------------+
Элемент WP_Post в wp_nav_menu():
Следующие элементы возвращает функция wp_get_nav_menu_items():
array( WP_Post Object ( [ID] => 10 [post_author] => 5 [post_date] => 2019-02-11 13:33:39 [post_date_gmt] => 2019-02-11 13:33:39 [post_content] => [post_title] => New [post_excerpt] => [post_status] => publish [comment_status] => closed [ping_status] => closed [post_password] => [post_name] => new [to_ping] => [pinged] => [post_modified] => 2019-02-11 23:10:19 [post_modified_gmt] => 2019-02-11 23:10:19 [post_content_filtered] => [post_parent] => 0 [guid] => http://dh5.com/?p=10 [menu_order] => 1 [post_type] => nav_menu_item [post_mime_type] => [comment_count] => 0 [filter] => raw [db_id] => 10 [menu_item_parent] => 0 [object_id] => 10 [object] => custom [type] => custom [type_label] => Custom Link [title] => New [url] => # [target] => [attr_title] => [description] => [classes] => Array [0] => extra-sub-menu [1] => menu-item [2] => menu-item-type-custom [3] => menu-item-object-custom [xfn] => [current] => [current_item_ancestor] => [current_item_parent] => ) WP_Post Object (...) ... )