本文档详细介绍了 WordPress REST API 中 Nav_Menu_Items 端点的数据结构和操作。它定义了导航菜单项(nav_menu_item)记录的字段模式,并提供了列表、创建、检索、更新和删除菜单项的端点定义、参数和示例。
// 列出所有菜单项
$ curl https://example.com/wp-json/wp/v2/menu-items
// 创建新菜单项
POST /wp/v2/menu-items
参数示例:{
"title": "示例菜单项",
"type": "custom",
"url": "https://example.com"
}
// 检索特定菜单项
$ curl https://example.com/wp-json/wp/v2/menu-items/<id>
// 删除菜单项
$ curl -X DELETE https://example.com/wp-json/wp/v2/menu-items/<id>The schema defines all the fields that exist within a nav_menu_item record. Any response from these endpoints can be expected to contain the fields below unless the `_filter` query parameter is used or the schema field only appears in a specific context.
title
|
The title for the object.
JSON data type: string or object Context: |
id
|
Unique identifier for the object.
JSON data type: integer Read only Context: |
type_label
|
The singular label used to describe this type of menu item.
JSON data type: string Read only Context: |
type
|
The family of objects originally represented, such as "post_type" or "taxonomy".
JSON data type: string Context: One of: |
status
|
A named status for the object.
JSON data type: string Context: One of: |
parent
|
The ID for the parent of the object.
JSON data type: integer Context: |
attr_title
|
Text for the title attribute of the link element for this menu item.
JSON data type: string Context: |
classes
|
Class names for the link element of this menu item.
JSON data type: array Context: |
description
|
The description of this menu item.
JSON data type: string Context: |
menu_order
|
The DB ID of the nav_menu_item that is this item's menu parent, if any, otherwise 0.
JSON data type: integer Context: |
object
|
The type of object originally represented, such as "category", "post", or "attachment".
JSON data type: string Context: |
object_id
|
The database ID of the original object this menu item represents, for example the ID for posts or the term_id for categories.
JSON data type: integer Context: |
target
|
The target attribute of the link element for this menu item.
JSON data type: string Context: One of: |
url
|
The URL to which this menu item points.
JSON data type: string, Context: |
xfn
|
The XFN relationship expressed in the link of this menu item.
JSON data type: array Context: |
invalid
|
Whether the menu item represents an object that no longer exists.
JSON data type: boolean Read only Context: |
menus
|
The terms assigned to the object in the nav_menu taxonomy.
JSON data type: integer Context: |
meta
|
Meta fields.
JSON data type: object Context: |
Query this endpoint to retrieve a collection of nav_menu_items. The response you receive can be controlled and filtered using the URL query parameters below.
GET /wp/v2/menu-items
$ curl https://example.com/wp-json/wp/v2/menu-items
context
|
Scope under which the request is made; determines fields present in response.
Default: One of: |
page
|
Current page of the collection.
Default: |
per_page
|
Maximum number of items to be returned in result set.
Default: |
search
|
Limit results to those matching a string. |
after
|
Limit response to posts published after a given ISO8601 compliant date. |
modified_after
|
Limit response to posts modified after a given ISO8601 compliant date. |
before
|
Limit response to posts published before a given ISO8601 compliant date. |
modified_before
|
Limit response to posts modified before a given ISO8601 compliant date. |
exclude
|
Ensure result set excludes specific IDs. |
include
|
Limit result set to specific IDs. |
offset
|
Offset the result set by a specific number of items. |
order
|
Order sort attribute ascending or descending.
Default: One of: |
orderby
|
Sort collection by object attribute.
Default: One of: |
search_columns
|
Array of column names to be searched. |
slug
|
Limit result set to posts with one or more specific slugs. |
status
|
Limit result set to posts assigned one or more statuses.
Default: |
tax_relation
|
Limit result set based on relationship between multiple taxonomies. One of: AND, OR
|
menus
|
Limit result set to items with specific terms assigned in the menus taxonomy. |
menus_exclude
|
Limit result set to items except those with specific terms assigned in the menus taxonomy. |
menu_order
|
Limit result set to posts with a specific menu_order value. |
<a href="#schema-title">title</a>
|
The title for the object. |
<a href="#schema-type">type</a>
|
The family of objects originally represented, such as "post_type" or "taxonomy".
Default: One of: |
<a href="#schema-status">status</a>
|
A named status for the object.
Default: One of: |
<a href="#schema-parent">parent</a>
|
The ID for the parent of the object. |
<a href="#schema-attr_title">attr_title</a>
|
Text for the title attribute of the link element for this menu item. |
<a href="#schema-classes">classes</a>
|
Class names for the link element of this menu item. |
<a href="#schema-description">description</a>
|
The description of this menu item. |
<a href="#schema-menu_order">menu_order</a>
|
The DB ID of the nav_menu_item that is this item's menu parent, if any, otherwise 0.
Default: |
<a href="#schema-object">object</a>
|
The type of object originally represented, such as "category", "post", or "attachment". |
<a href="#schema-object_id">object_id</a>
|
The database ID of the original object this menu item represents, for example the ID for posts or the term_id for categories. |
<a href="#schema-target">target</a>
|
The target attribute of the link element for this menu item. One of: _blank,
|
<a href="#schema-url">url</a>
|
The URL to which this menu item points. |
<a href="#schema-xfn">xfn</a>
|
The XFN relationship expressed in the link of this menu item. |
<a href="#schema-menus">menus</a>
|
The terms assigned to the object in the nav_menu taxonomy. |
<a href="#schema-meta">meta</a>
|
Meta fields. |
POST /wp/v2/menu-items
GET /wp/v2/menu-items/<id>
Query this endpoint to retrieve a specific nav_menu_item record.
$ curl https://example.com/wp-json/wp/v2/menu-items/<id>
id
|
Unique identifier for the post. |
context
|
Scope under which the request is made; determines fields present in response.
Default: One of: |
<a href="#schema-id">id</a>
|
Unique identifier for the post. |
<a href="#schema-title">title</a>
|
The title for the object. |
<a href="#schema-type">type</a>
|
The family of objects originally represented, such as "post_type" or "taxonomy". One of: taxonomy, post_type, post_type_archive, custom
|
<a href="#schema-status">status</a>
|
A named status for the object. One of: publish, future, draft, pending, private
|
<a href="#schema-parent">parent</a>
|
The ID for the parent of the object. |
<a href="#schema-attr_title">attr_title</a>
|
Text for the title attribute of the link element for this menu item. |
<a href="#schema-classes">classes</a>
|
Class names for the link element of this menu item. |
<a href="#schema-description">description</a>
|
The description of this menu item. |
<a href="#schema-menu_order">menu_order</a>
|
The DB ID of the nav_menu_item that is this item's menu parent, if any, otherwise 0. |
<a href="#schema-object">object</a>
|
The type of object originally represented, such as "category", "post", or "attachment". |
<a href="#schema-object_id">object_id</a>
|
The database ID of the original object this menu item represents, for example the ID for posts or the term_id for categories. |
<a href="#schema-target">target</a>
|
The target attribute of the link element for this menu item. One of: _blank,
|
<a href="#schema-url">url</a>
|
The URL to which this menu item points. |
<a href="#schema-xfn">xfn</a>
|
The XFN relationship expressed in the link of this menu item. |
<a href="#schema-menus">menus</a>
|
The terms assigned to the object in the nav_menu taxonomy. |
<a href="#schema-meta">meta</a>
|
Meta fields. |
POST /wp/v2/menu-items/<id>
id
|
Unique identifier for the post. |
force
|
Whether to bypass Trash and force deletion. |
DELETE /wp/v2/menu-items/<id>
$ curl -X DELETE https://example.com/wp-json/wp/v2/menu-items/<id>