# extendify/2.2.0/src/Agent/workflows/theme/tools/get-menu-items.js

Extendify, version 2.2.0. 31 lines.

- Page: https://pluginprobe.com/plugins/extendify/2.2.0/code/src/Agent/workflows/theme/tools/get-menu-items.js
- Raw: https://pluginprobe.com/plugins/extendify/2.2.0/raw/src/Agent/workflows/theme/tools/get-menu-items.js
- Modified: 2025-10-23T16:20:58+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/extendify/2.2.0/code/src/Agent/workflows/theme/tools/get-menu-items.js#L10-L20`.

```javascript
import apiFetch from '@wordpress/api-fetch';

const postTypes = { page: 'pages', post: 'posts' };

export default async ({ postId, postType }) => {
	// Get all nav menus that are presented in the post/page.
	const postNavigations = Array.from(
		window.document?.querySelectorAll('nav[data-extendify-menu-id]') ?? [],
	)
		.map((nav) => nav.dataset.extendifyMenuId)
		.filter(Boolean);

	// get the data about those nav menus
	const navigations =
		(await apiFetch({
			method: 'POST',
			path: '/extendify/v1/agent/site-navigation',
			data: { only: postNavigations.join(',') },
		})) ?? [];

	const postInfo = await apiFetch({
		path: `/wp/v2/${postTypes[postType]}/${postId}`,
	});

	return {
		navigations,
		postTitle: postInfo.title.rendered,
		postURL: postInfo.link,
	};
};

```
