block_core_navigation_parse_blocks_from_menu_items()
Устарела с версии 6.3.0. Больше не поддерживается и может быть удалена. Используйте
WP_Navigation_Fallback::parse_blocks_from_menu_items().Turns menu item data into a nested array of parsed blocks
Хуков нет.
Возвращает
Массив. An array of parsed block data.
Использование
block_core_navigation_parse_blocks_from_menu_items( $menu_items, $menu_items_by_parent_id );
- $menu_items(массив) (обязательный)
- An array of menu items that represent an individual level of a menu.
- $menu_items_by_parent_id(массив) (обязательный)
- An array keyed by the id of the parent menu where each element is an array of menu items that belong to that parent.
Список изменений
| С версии 5.9.0 | Введена. |
| Устарела с 6.3.0 | Use WP_Navigation_Fallback::parse_blocks_from_menu_items() instead. |
Код block_core_navigation_parse_blocks_from_menu_items() block core navigation parse blocks from menu items WP 6.9.1
function block_core_navigation_parse_blocks_from_menu_items( $menu_items, $menu_items_by_parent_id ) {
_deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::parse_blocks_from_menu_items' );
if ( empty( $menu_items ) ) {
return array();
}
$blocks = array();
foreach ( $menu_items as $menu_item ) {
$class_name = ! empty( $menu_item->classes ) ? implode( ' ', (array) $menu_item->classes ) : null;
$id = ( null !== $menu_item->object_id && 'custom' !== $menu_item->object ) ? $menu_item->object_id : null;
$opens_in_new_tab = null !== $menu_item->target && '_blank' === $menu_item->target;
$rel = ( null !== $menu_item->xfn && '' !== $menu_item->xfn ) ? $menu_item->xfn : null;
$kind = null !== $menu_item->type ? str_replace( '_', '-', $menu_item->type ) : 'custom';
$block = array(
'blockName' => isset( $menu_items_by_parent_id[ $menu_item->ID ] ) ? 'core/navigation-submenu' : 'core/navigation-link',
'attrs' => array(
'className' => $class_name,
'description' => $menu_item->description,
'id' => $id,
'kind' => $kind,
'label' => $menu_item->title,
'opensInNewTab' => $opens_in_new_tab,
'rel' => $rel,
'title' => $menu_item->attr_title,
'type' => $menu_item->object,
'url' => $menu_item->url,
),
);
$block['innerBlocks'] = isset( $menu_items_by_parent_id[ $menu_item->ID ] )
? block_core_navigation_parse_blocks_from_menu_items( $menu_items_by_parent_id[ $menu_item->ID ], $menu_items_by_parent_id )
: array();
$block['innerContent'] = array_map( 'serialize_block', $block['innerBlocks'] );
$blocks[] = $block;
}
return $blocks;
}