Как устроено 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 (...) ... )
