функция since 3.0.0

wp_get_associated_nav_menu_items()

Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.

Сигнатура

wp_get_associated_nav_menu_items( int $object_id, string $object_type = 'post_type', string $taxonomy = '' ): int[]

Описание

Возвращает элементы меню, связанные с определённым объектом.

Параметры

$object_id int необязательный
ID исходного объекта. По умолчанию 0.
$object_type string необязательный = 'post_type'
Тип объекта, например 'post_type' или 'taxonomy'. По умолчанию 'post_type'.
$taxonomy string необязательный = ''
Если $object_type равно 'taxonomy', то $taxonomy — это имя таксономии, к которой относится $object_id .

Возвращаемое значение

int[]

Исходный код

wp-includes/nav-menu.php:1054

function wp_get_associated_nav_menu_items( $object_id = 0, $object_type = 'post_type', $taxonomy = '' ) {
	$object_id     = (int) $object_id;
	$menu_item_ids = array();

	$query      = new WP_Query();
	$menu_items = $query->query(
		array(
			'meta_key'       => '_menu_item_object_id',
			'meta_value'     => $object_id,
			'post_status'    => 'any',
			'post_type'      => 'nav_menu_item',
			'posts_per_page' => -1,
		)
	);
	foreach ( (array) $menu_items as $menu_item ) {
		if ( isset( $menu_item->ID ) && is_nav_menu_item( $menu_item->ID ) ) {
			$menu_item_type = get_post_meta( $menu_item->ID, '_menu_item_type', true );
			if (
				'post_type' === $object_type &&
				'post_type' === $menu_item_type
			) {
				$menu_item_ids[] = (int) $menu_item->ID;
			} elseif (
				'taxonomy' === $object_type &&
				'taxonomy' === $menu_item_type &&
				get_post_meta( $menu_item->ID, '_menu_item_object', true ) === $taxonomy
			) {
				$menu_item_ids[] = (int) $menu_item->ID;
			}
		}
	}

	return array_unique( $menu_item_ids );
}

История изменений

ВерсияОписание
3.0.0 Introduced.

Что будем искать? Например,Продвижение

Этот сайт использует куки-файлы. Оставаясь на сайте, Вы соглашаетесь на их использование. Для получения дополнительной информации, пожалуйста, ознакомьтесь с политикой в отношении персональных данных.