Я пытаюсь получить все идентификаторы в моей навигации и преобразовать его в строку, чтобы я мог использовать его wp_query
для получения страниц, которые перечислены только в навигации. Код для получения идентификаторов:
$menu_name = 'primary';
if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] )) {
$menu = wp_get_nav_menu_object( $locations[ $menu_name ] );
$menu_items = wp_get_nav_menu_items($menu->term_id);
}
foreach ( $menu_items as $menu_item ) {
$numbers[] = $menu_item->ID;
}
$number = implode(',',$numbers);
Но он возвращает неправильные цифры. Когда я захожу в админку и наводю указатель мыши на страницы, число, отображаемое в адресной строке внизу экрана, не совпадает. Что я делаю неправильно?
$numbers[] = $menu_item->ID;
той, что в моем ответе.Я не смог бы сообщить вам, когда произошло это изменение, но начиная с WordPress версии 5.2.4 вы можете использовать
object
иobject_id
для получения идентификатора страницы. Вот как бы я это сделал:источник