/
home
/
vianto5
/
realtylifestyleproperties.mx
/
wp-includes
/
/home/vianto5/realtylifestyleproperties.mx/wp-includes
mkdir
upload
Name
Size
Mode
Actions
assets/
-
0755
rm
block-bindings/
-
0755
rm
block-patterns/
-
0755
rm
block-supports/
-
0755
rm
blocks/
-
0755
rm
certificates/
-
0755
rm
css/
-
0755
rm
customize/
-
0755
rm
fonts/
-
0755
rm
html-api/
-
0755
rm
ID3/
-
0755
rm
images/
-
0755
rm
interactivity-api/
-
0755
rm
IXR/
-
0755
rm
js/
-
0755
rm
l10n/
-
0755
rm
php-compat/
-
0755
rm
PHPMailer/
-
0755
rm
pomo/
-
0755
rm
Requests/
-
0755
rm
rest-api/
-
0755
rm
SimplePie/
-
0755
rm
sitemaps/
-
0755
rm
sodium_compat/
-
0755
rm
style-engine/
-
0755
rm
Text/
-
0755
rm
theme-compat/
-
0755
rm
widgets/
-
0755
rm
.htaccess
178
0644
edit
dl
rm
admin-bar.php
37106
0644
edit
dl
rm
atomlib.php
12078
0644
edit
dl
rm
author-template.php
18951
0644
edit
dl
rm
block-bindings.php
5594
0644
edit
dl
rm
block-editor.php
28797
0644
edit
dl
rm
block-i18n.json
316
0644
edit
dl
rm
block-patterns.php
13213
0644
edit
dl
rm
block-template-utils.php
61907
0644
edit
dl
rm
block-template.php
15356
0644
edit
dl
rm
blocks.php
113051
0644
edit
dl
rm
bookmark-template.php
12768
0644
edit
dl
rm
bookmark.php
15427
0644
edit
dl
rm
cache-compat.php
5969
0644
edit
dl
rm
cache.php
13474
0644
edit
dl
rm
canonical.php
34523
0644
edit
dl
rm
capabilities.php
42718
0644
edit
dl
rm
category-template.php
57003
0644
edit
dl
rm
category.php
12829
0644
edit
dl
rm
class-avif-info.php
29615
0644
edit
dl
rm
class-feed.php
539
0644
edit
dl
rm
class-http.php
367
0644
edit
dl
rm
class-IXR.php
2616
0644
edit
dl
rm
class-json.php
43684
0644
edit
dl
rm
class-oembed.php
401
0644
edit
dl
rm
class-phpass.php
6771
0644
edit
dl
rm
class-phpmailer.php
664
0644
edit
dl
rm
class-pop3.php
21121
0644
edit
dl
rm
class-requests.php
2237
0644
edit
dl
rm
class-simplepie.php
453
0644
edit
dl
rm
class-smtp.php
457
0644
edit
dl
rm
class-snoopy.php
37715
0644
edit
dl
rm
class-walker-category-dropdown.php
2469
0644
edit
dl
rm
class-walker-category.php
8477
0644
edit
dl
rm
class-walker-comment.php
14221
0644
edit
dl
rm
class-walker-nav-menu.php
12044
0644
edit
dl
rm
class-walker-page-dropdown.php
2710
0644
edit
dl
rm
class-walker-page.php
7612
0644
edit
dl
rm
class-wp-admin-bar.php
17874
0644
edit
dl
rm
class-wp-ajax-response.php
5266
0644
edit
dl
rm
class-wp-application-passwords.php
17099
0644
edit
dl
rm
class-wp-block-bindings-registry.php
8463
0644
edit
dl
rm
class-wp-block-bindings-source.php
2992
0644
edit
dl
rm
class-wp-block-editor-context.php
1350
0644
edit
dl
rm
class-wp-block-list.php
4757
0644
edit
dl
rm
class-wp-block-metadata-registry.php
11895
0644
edit
dl
rm
class-wp-block-parser-block.php
2555
0644
edit
dl
rm
class-wp-block-parser-frame.php
2017
0644
edit
dl
rm
class-wp-block-parser.php
11532
0644
edit
dl
rm
class-wp-block-pattern-categories-registry.php
5371
0644
edit
dl
rm
class-wp-block-patterns-registry.php
10783
0644
edit
dl
rm
class-wp-block-styles-registry.php
6403
0644
edit
dl
rm
class-wp-block-supports.php
5626
0644
edit
dl
rm
class-wp-block-template.php
2033
0644
edit
dl
rm
class-wp-block-templates-registry.php
7231
0644
edit
dl
rm
class-wp-block-type-registry.php
5013
0644
edit
dl
rm
class-wp-block-type.php
17265
0644
edit
dl
rm
class-wp-block.php
23041
0644
edit
dl
rm
class-wp-classic-to-block-menu-converter.php
4088
0644
edit
dl
rm
class-wp-comment-query.php
48395
0644
edit
dl
rm
class-wp-comment.php
9437
0644
edit
dl
rm
class-wp-customize-control.php
25851
0644
edit
dl
rm
class-wp-customize-manager.php
202593
0644
edit
dl
rm
class-wp-customize-nav-menus.php
57660
0644
edit
dl
rm
class-wp-customize-panel.php
10710
0644
edit
dl
rm
class-wp-customize-section.php
11209
0644
edit
dl
rm
class-wp-customize-setting.php
29962
0644
edit
dl
rm
class-wp-customize-widgets.php
72210
0644
edit
dl
rm
class-wp-date-query.php
35732
0644
edit
dl
rm
class-wp-dependencies.php
15139
0644
edit
dl
rm
class-wp-dependency.php
2627
0644
edit
dl
rm
class-wp-duotone.php
40783
0644
edit
dl
rm
class-wp-editor.php
72335
0644
edit
dl
rm
class-wp-embed.php
15931
0644
edit
dl
rm
class-wp-error.php
7502
0644
edit
dl
rm
class-wp-exception.php
253
0644
edit
dl
rm
class-wp-fatal-error-handler.php
8150
0644
edit
dl
rm
class-wp-feed-cache-transient.php
3176
0644
edit
dl
rm
class-wp-feed-cache.php
969
0644
edit
dl
rm
class-wp-hook.php
16000
0644
edit
dl
rm
class-wp-http-cookie.php
7389
0644
edit
dl
rm
class-wp-http-curl.php
12541
0644
edit
dl
rm
class-wp-http-encoding.php
6689
0644
edit
dl
rm
class-wp-http-ixr-client.php
3501
0644
edit
dl
rm
class-wp-http-proxy.php
5980
0644
edit
dl
rm
class-wp-http-requests-hooks.php
2022
0644
edit
dl
rm
class-wp-http-requests-response.php
4400
0644
edit
dl
rm
class-wp-http-response.php
2977
0644
edit
dl
rm
class-wp-http-streams.php
16859
0644
edit
dl
rm
class-wp-http.php
41579
0644
edit
dl
rm
class-wp-image-editor-gd.php
20162
0644
edit
dl
rm
class-wp-image-editor-imagick.php
34735
0644
edit
dl
rm
class-wp-image-editor.php
17527
0644
edit
dl
rm
class-wp-list-util.php
7443
0644
edit
dl
rm
class-wp-locale-switcher.php
6776
0644
edit
dl
rm
class-wp-locale.php
16883
0644
edit
dl
rm
class-wp-matchesmapregex.php
1828
0644
edit
dl
rm
class-wp-meta-query.php
30531
0644
edit
dl
rm
class-wp-metadata-lazyloader.php
6833
0644
edit
dl
rm
class-wp-navigation-fallback.php
9211
0644
edit
dl
rm
class-wp-network-query.php
19857
0644
edit
dl
rm
class-wp-network.php
12296
0644
edit
dl
rm
class-wp-object-cache.php
17524
0644
edit
dl
rm
class-wp-oembed-controller.php
6905
0644
edit
dl
rm
class-wp-oembed.php
31606
0644
edit
dl
rm
class-wp-paused-extensions-storage.php
5111
0644
edit
dl
rm
class-wp-phpmailer.php
3802
0644
edit
dl
rm
class-wp-plugin-dependencies.php
25315
0644
edit
dl
rm
class-wp-post-type.php
30680
0644
edit
dl
rm
class-wp-post.php
6488
0644
edit
dl
rm
class-wp-query.php
158023
0644
edit
dl
rm
class-wp-recovery-mode-cookie-service.php
6877
0644
edit
dl
rm
class-wp-recovery-mode-email-service.php
11183
0644
edit
dl
rm
class-wp-recovery-mode-key-service.php
4884
0644
edit
dl
rm
class-wp-recovery-mode-link-service.php
3463
0644
edit
dl
rm
class-wp-recovery-mode.php
11453
0644
edit
dl
rm
class-wp-rewrite.php
63688
0644
edit
dl
rm
class-wp-role.php
2523
0644
edit
dl
rm
class-wp-roles.php
8586
0644
edit
dl
rm
class-wp-script-modules.php
19463
0644
edit
dl
rm
class-wp-scripts.php
28344
0644
edit
dl
rm
class-wp-session-tokens.php
7319
0644
edit
dl
rm
class-wp-simplepie-file.php
3408
0644
edit
dl
rm
class-wp-simplepie-sanitize-kses.php
1910
0644
edit
dl
rm
class-wp-site-query.php
31625
0644
edit
dl
rm
class-wp-site.php
7454
0644
edit
dl
rm
class-wp-speculation-rules.php
7527
0644
edit
dl
rm
class-wp-styles.php
11010
0644
edit
dl
rm
class-wp-tax-query.php
19555
0644
edit
dl
rm
class-wp-taxonomy.php
18559
0644
edit
dl
rm
class-wp-term-query.php
40869
0644
edit
dl
rm
class-wp-term.php
5298
0644
edit
dl
rm
class-wp-text-diff-renderer-inline.php
979
0644
edit
dl
rm
class-wp-text-diff-renderer-table.php
18880
0644
edit
dl
rm
class-wp-textdomain-registry.php
10481
0644
edit
dl
rm
class-wp-theme-json-data.php
1809
0644
edit
dl
rm
class-wp-theme-json-resolver.php
35738
0644
edit
dl
rm
class-wp-theme-json-schema.php
7367
0644
edit
dl
rm
class-wp-theme-json.php
163545
0644
edit
dl
rm
class-wp-theme.php
65810
0644
edit
dl
rm
class-wp-token-map.php
28618
0644
edit
dl
rm
class-wp-url-pattern-prefixer.php
4802
0644
edit
dl
rm
class-wp-user-meta-session-tokens.php
2990
0644
edit
dl
rm
class-wp-user-query.php
43655
0644
edit
dl
rm
class-wp-user-request.php
2305
0644
edit
dl
rm
class-wp-user.php
22994
0644
edit
dl
rm
class-wp-walker.php
13322
0644
edit
dl
rm
class-wp-widget-factory.php
3347
0644
edit
dl
rm
class-wp-widget.php
18429
0644
edit
dl
rm
class-wp-xmlrpc-server.php
215444
0644
edit
dl
rm
class-wp.php
26318
0644
edit
dl
rm
class-wpdb.php
118284
0644
edit
dl
rm
class.wp-dependencies.php
373
0644
edit
dl
rm
class.wp-scripts.php
343
0644
edit
dl
rm
class.wp-styles.php
338
0644
edit
dl
rm
comment-template.php
103104
0644
edit
dl
rm
comment.php
131547
0644
edit
dl
rm
compat.php
16376
0644
edit
dl
rm
cron.php
42658
0644
edit
dl
rm
date.php
400
0644
edit
dl
rm
default-constants.php
11365
0644
edit
dl
rm
default-filters.php
36697
0644
edit
dl
rm
default-widgets.php
2295
0644
edit
dl
rm
deprecated.php
191563
0644
edit
dl
rm
embed-template.php
338
0644
edit
dl
rm
embed.php
38172
0644
edit
dl
rm
error-protection.php
4121
0644
edit
dl
rm
feed-atom-comments.php
5504
0644
edit
dl
rm
feed-atom.php
3121
0644
edit
dl
rm
feed-rdf.php
2668
0644
edit
dl
rm
feed-rss.php
1189
0644
edit
dl
rm
feed-rss2-comments.php
4136
0644
edit
dl
rm
feed-rss2.php
3799
0644
edit
dl
rm
feed.php
23411
0644
edit
dl
rm
fonts.php
9751
0644
edit
dl
rm
formatting.php
342921
0644
edit
dl
rm
functions.php
287546
0644
edit
dl
rm
functions.wp-scripts.php
14558
0644
edit
dl
rm
functions.wp-styles.php
8583
0644
edit
dl
rm
general-template.php
172498
0644
edit
dl
rm
global-styles-and-settings.php
21261
0644
edit
dl
rm
http.php
25312
0644
edit
dl
rm
https-detection.php
5857
0644
edit
dl
rm
https-migration.php
4741
0644
edit
dl
rm
kses.php
74472
0644
edit
dl
rm
l10n.php
68530
0644
edit
dl
rm
link-template.php
157801
0644
edit
dl
rm
load.php
56440
0644
edit
dl
rm
locale.php
162
0644
edit
dl
rm
media-template.php
63060
0644
edit
dl
rm
media.php
220496
0644
edit
dl
rm
meta.php
65243
0644
edit
dl
rm
ms-blogs.php
25845
0644
edit
dl
rm
ms-default-constants.php
4921
0644
edit
dl
rm
ms-default-filters.php
6636
0644
edit
dl
rm
ms-deprecated.php
21759
0644
edit
dl
rm
ms-files.php
2744
0644
edit
dl
rm
ms-functions.php
91582
0644
edit
dl
rm
ms-load.php
19883
0644
edit
dl
rm
ms-network.php
3782
0644
edit
dl
rm
ms-settings.php
4197
0644
edit
dl
rm
ms-site.php
41320
0644
edit
dl
rm
nav-menu-template.php
25990
0644
edit
dl
rm
nav-menu.php
44373
0644
edit
dl
rm
option.php
103065
0644
edit
dl
rm
pluggable-deprecated.php
6324
0644
edit
dl
rm
pluggable.php
122700
0644
edit
dl
rm
plugin.php
35465
0644
edit
dl
rm
post-formats.php
7102
0644
edit
dl
rm
post-template.php
68648
0644
edit
dl
rm
post-thumbnail-template.php
10879
0644
edit
dl
rm
post.php
291712
0644
edit
dl
rm
query.php
37035
0644
edit
dl
rm
registration-functions.php
200
0644
edit
dl
rm
registration.php
200
0644
edit
dl
rm
rest-api.php
100257
0644
edit
dl
rm
revision.php
30741
0644
edit
dl
rm
rewrite.php
19541
0644
edit
dl
rm
robots-template.php
5185
0644
edit
dl
rm
rss-functions.php
255
0644
edit
dl
rm
rss.php
23113
0644
edit
dl
rm
script-loader.php
133262
0644
edit
dl
rm
script-modules.php
7712
0644
edit
dl
rm
session.php
258
0644
edit
dl
rm
shortcodes.php
24051
0644
edit
dl
rm
sitemaps.php
3238
0644
edit
dl
rm
speculative-loading.php
8558
0644
edit
dl
rm
spl-autoload-compat.php
441
0644
edit
dl
rm
style-engine.php
7563
0644
edit
dl
rm
taxonomy.php
176227
0644
edit
dl
rm
template-canvas.php
544
0644
edit
dl
rm
template-loader.php
3012
0644
edit
dl
rm
template.php
24154
0644
edit
dl
rm
theme-i18n.json
1526
0644
edit
dl
rm
theme-previews.php
2832
0644
edit
dl
rm
theme-templates.php
6238
0644
edit
dl
rm
theme.json
8704
0644
edit
dl
rm
theme.php
134303
0644
edit
dl
rm
update.php
37503
0644
edit
dl
rm
user.php
175823
0644
edit
dl
rm
vars.php
6562
0644
edit
dl
rm
version.php
1090
0644
edit
dl
rm
widgets.php
70719
0644
edit
dl
rm
wp-db.php
445
0644
edit
dl
rm
wp-diff.php
799
0644
edit
dl
rm
Edit:
/home/vianto5/realtylifestyleproperties.mx/wp-includes/class-wp-admin-bar.php
(17874B)
<?php /** * Toolbar API: WP_Admin_Bar class * * @package WordPress * @subpackage Toolbar * @since 3.1.0 */ /** * Core class used to implement the Toolbar API. * * @since 3.1.0 */ #[AllowDynamicProperties] class WP_Admin_Bar { private $nodes = array(); private $bound = false; public $user; /** * Deprecated menu property. * * @since 3.1.0 * @deprecated 3.3.0 Modify admin bar nodes with WP_Admin_Bar::get_node(), * WP_Admin_Bar::add_node(), and WP_Admin_Bar::remove_node(). * @var array */ public $menu = array(); /** * Initializes the admin bar. * * @since 3.1.0 */ public function initialize() { $this->user = new stdClass(); if ( is_user_logged_in() ) { /* Populate settings we need for the menu based on the current user. */ $this->user->blogs = get_blogs_of_user( get_current_user_id() ); if ( is_multisite() ) { $this->user->active_blog = get_active_blog_for_user( get_current_user_id() ); $this->user->domain = empty( $this->user->active_blog ) ? user_admin_url() : trailingslashit( get_home_url( $this->user->active_blog->blog_id ) ); $this->user->account_domain = $this->user->domain; } else { $this->user->active_blog = $this->user->blogs[ get_current_blog_id() ]; $this->user->domain = trailingslashit( home_url() ); $this->user->account_domain = $this->user->domain; } } add_action( 'wp_head', 'wp_admin_bar_header' ); add_action( 'admin_head', 'wp_admin_bar_header' ); if ( current_theme_supports( 'admin-bar' ) ) { /** * To remove the default padding styles from WordPress for the Toolbar, use the following code: * add_theme_support( 'admin-bar', array( 'callback' => '__return_false' ) ); */ $admin_bar_args = get_theme_support( 'admin-bar' ); $header_callback = $admin_bar_args[0]['callback']; } if ( empty( $header_callback ) ) { $header_callback = '_admin_bar_bump_cb'; } add_action( 'wp_head', $header_callback ); wp_enqueue_script( 'admin-bar' ); wp_enqueue_style( 'admin-bar' ); /** * Fires after WP_Admin_Bar is initialized. * * @since 3.1.0 */ do_action( 'admin_bar_init' ); } /** * Adds a node (menu item) to the admin bar menu. * * @since 3.3.0 * * @param array $node The attributes that define the node. */ public function add_menu( $node ) { $this->add_node( $node ); } /** * Removes a node from the admin bar. * * @since 3.1.0 * * @param string $id The menu slug to remove. */ public function remove_menu( $id ) { $this->remove_node( $id ); } /** * Adds a node to the menu. * * @since 3.1.0 * @since 4.5.0 Added the ability to pass 'lang' and 'dir' meta data. * @since 6.5.0 Added the ability to pass 'menu_title' for an ARIA menu name. * * @param array $args { * Arguments for adding a node. * * @type string $id ID of the item. * @type string $title Title of the node. * @type string $parent Optional. ID of the parent node. * @type string $href Optional. Link for the item. * @type bool $group Optional. Whether or not the node is a group. Default false. * @type array $meta Meta data including the following keys: 'html', 'class', 'rel', 'lang', 'dir', * 'onclick', 'target', 'title', 'tabindex', 'menu_title'. Default empty. * } */ public function add_node( $args ) { // Shim for old method signature: add_node( $parent_id, $menu_obj, $args ). if ( func_num_args() >= 3 && is_string( $args ) ) { $args = array_merge( array( 'parent' => $args ), func_get_arg( 2 ) ); } if ( is_object( $args ) ) { $args = get_object_vars( $args ); } // Ensure we have a valid title. if ( empty( $args['id'] ) ) { if ( empty( $args['title'] ) ) { return; } _doing_it_wrong( __METHOD__, __( 'The menu ID should not be empty.' ), '3.3.0' ); // Deprecated: Generate an ID from the title. $args['id'] = esc_attr( sanitize_title( trim( $args['title'] ) ) ); } $defaults = array( 'id' => false, 'title' => false, 'parent' => false, 'href' => false, 'group' => false, 'meta' => array(), ); // If the node already exists, keep any data that isn't provided. $maybe_defaults = $this->get_node( $args['id'] ); if ( $maybe_defaults ) { $defaults = get_object_vars( $maybe_defaults ); } // Do the same for 'meta' items. if ( ! empty( $defaults['meta'] ) && ! empty( $args['meta'] ) ) { $args['meta'] = wp_parse_args( $args['meta'], $defaults['meta'] ); } $args = wp_parse_args( $args, $defaults ); $back_compat_parents = array( 'my-account-with-avatar' => array( 'my-account', '3.3' ), 'my-blogs' => array( 'my-sites', '3.3' ), ); if ( isset( $back_compat_parents[ $args['parent'] ] ) ) { list( $new_parent, $version ) = $back_compat_parents[ $args['parent'] ]; _deprecated_argument( __METHOD__, $version, sprintf( 'Use <code>%s</code> as the parent for the <code>%s</code> admin bar node instead of <code>%s</code>.', $new_parent, $args['id'], $args['parent'] ) ); $args['parent'] = $new_parent; } $this->_set_node( $args ); } /** * @since 3.3.0 * * @param array $args */ final protected function _set_node( $args ) { $this->nodes[ $args['id'] ] = (object) $args; } /** * Gets a node. * * @since 3.3.0 * * @param string $id * @return object|void Node. */ final public function get_node( $id ) { $node = $this->_get_node( $id ); if ( $node ) { return clone $node; } } /** * @since 3.3.0 * * @param string $id * @return object|void */ final protected function _get_node( $id ) { if ( $this->bound ) { return; } if ( empty( $id ) ) { $id = 'root'; } if ( isset( $this->nodes[ $id ] ) ) { return $this->nodes[ $id ]; } } /** * @since 3.3.0 * * @return array|void */ final public function get_nodes() { $nodes = $this->_get_nodes(); if ( ! $nodes ) { return; } foreach ( $nodes as &$node ) { $node = clone $node; } return $nodes; } /** * @since 3.3.0 * * @return array|void */ final protected function _get_nodes() { if ( $this->bound ) { return; } return $this->nodes; } /** * Adds a group to a toolbar menu node. * * Groups can be used to organize toolbar items into distinct sections of a toolbar menu. * * @since 3.3.0 * * @param array $args { * Array of arguments for adding a group. * * @type string $id ID of the item. * @type string $parent Optional. ID of the parent node. Default 'root'. * @type array $meta Meta data for the group including the following keys: * 'class', 'onclick', 'target', and 'title'. * } */ final public function add_group( $args ) { $args['group'] = true; $this->add_node( $args ); } /** * Remove a node. * * @since 3.1.0 * * @param string $id The ID of the item. */ public function remove_node( $id ) { $this->_unset_node( $id ); } /** * @since 3.3.0 * * @param string $id */ final protected function _unset_node( $id ) { unset( $this->nodes[ $id ] ); } /** * @since 3.1.0 */ public function render() { $root = $this->_bind(); if ( $root ) { $this->_render( $root ); } } /** * @since 3.3.0 * * @return object|void */ final protected function _bind() { if ( $this->bound ) { return; } /* * Add the root node. * Clear it first, just in case. Don't mess with The Root. */ $this->remove_node( 'root' ); $this->add_node( array( 'id' => 'root', 'group' => false, ) ); // Normalize nodes: define internal 'children' and 'type' properties. foreach ( $this->_get_nodes() as $node ) { $node->children = array(); $node->type = ( $node->group ) ? 'group' : 'item'; unset( $node->group ); // The Root wants your orphans. No lonely items allowed. if ( ! $node->parent ) { $node->parent = 'root'; } } foreach ( $this->_get_nodes() as $node ) { if ( 'root' === $node->id ) { continue; } // Fetch the parent node. If it isn't registered, ignore the node. $parent = $this->_get_node( $node->parent ); if ( ! $parent ) { continue; } // Generate the group class (we distinguish between top level and other level groups). $group_class = ( 'root' === $node->parent ) ? 'ab-top-menu' : 'ab-submenu'; if ( 'group' === $node->type ) { if ( empty( $node->meta['class'] ) ) { $node->meta['class'] = $group_class; } else { $node->meta['class'] .= ' ' . $group_class; } } // Items in items aren't allowed. Wrap nested items in 'default' groups. if ( 'item' === $parent->type && 'item' === $node->type ) { $default_id = $parent->id . '-default'; $default = $this->_get_node( $default_id ); /* * The default group is added here to allow groups that are * added before standard menu items to render first. */ if ( ! $default ) { /* * Use _set_node because add_node can be overloaded. * Make sure to specify default settings for all properties. */ $this->_set_node( array( 'id' => $default_id, 'parent' => $parent->id, 'type' => 'group', 'children' => array(), 'meta' => array( 'class' => $group_class, ), 'title' => false, 'href' => false, ) ); $default = $this->_get_node( $default_id ); $parent->children[] = $default; } $parent = $default; /* * Groups in groups aren't allowed. Add a special 'container' node. * The container will invisibly wrap both groups. */ } elseif ( 'group' === $parent->type && 'group' === $node->type ) { $container_id = $parent->id . '-container'; $container = $this->_get_node( $container_id ); // We need to create a container for this group, life is sad. if ( ! $container ) { /* * Use _set_node because add_node can be overloaded. * Make sure to specify default settings for all properties. */ $this->_set_node( array( 'id' => $container_id, 'type' => 'container', 'children' => array( $parent ), 'parent' => false, 'title' => false, 'href' => false, 'meta' => array(), ) ); $container = $this->_get_node( $container_id ); // Link the container node if a grandparent node exists. $grandparent = $this->_get_node( $parent->parent ); if ( $grandparent ) { $container->parent = $grandparent->id; $index = array_search( $parent, $grandparent->children, true ); if ( false === $index ) { $grandparent->children[] = $container; } else { array_splice( $grandparent->children, $index, 1, array( $container ) ); } } $parent->parent = $container->id; } $parent = $container; } // Update the parent ID (it might have changed). $node->parent = $parent->id; // Add the node to the tree. $parent->children[] = $node; } $root = $this->_get_node( 'root' ); $this->bound = true; return $root; } /** * @since 3.3.0 * * @param object $root */ final protected function _render( $root ) { /* * Add browser classes. * We have to do this here since admin bar shows on the front end. */ $class = 'nojq nojs'; if ( wp_is_mobile() ) { $class .= ' mobile'; } ?> <div id="wpadminbar" class="<?php echo $class; ?>"> <?php if ( ! is_admin() && ! did_action( 'wp_body_open' ) ) { ?> <a class="screen-reader-shortcut" href="#wp-toolbar" tabindex="1"><?php _e( 'Skip to toolbar' ); ?></a> <?php } ?> <div class="quicklinks" id="wp-toolbar" role="navigation" aria-label="<?php esc_attr_e( 'Toolbar' ); ?>"> <?php foreach ( $root->children as $group ) { $this->_render_group( $group ); } ?> </div> </div> <?php } /** * @since 3.3.0 * * @param object $node */ final protected function _render_container( $node ) { if ( 'container' !== $node->type || empty( $node->children ) ) { return; } echo '<div id="' . esc_attr( 'wp-admin-bar-' . $node->id ) . '" class="ab-group-container">'; foreach ( $node->children as $group ) { $this->_render_group( $group ); } echo '</div>'; } /** * @since 3.3.0 * @since 6.5.0 Added `$menu_title` parameter to allow an ARIA menu name. * * @param object $node * @param string|bool $menu_title The accessible name of this ARIA menu or false if not provided. */ final protected function _render_group( $node, $menu_title = false ) { if ( 'container' === $node->type ) { $this->_render_container( $node ); return; } if ( 'group' !== $node->type || empty( $node->children ) ) { return; } if ( ! empty( $node->meta['class'] ) ) { $class = ' class="' . esc_attr( trim( $node->meta['class'] ) ) . '"'; } else { $class = ''; } if ( empty( $menu_title ) ) { echo "<ul role='menu' id='" . esc_attr( 'wp-admin-bar-' . $node->id ) . "'$class>"; } else { echo "<ul role='menu' aria-label='" . esc_attr( $menu_title ) . "' id='" . esc_attr( 'wp-admin-bar-' . $node->id ) . "'$class>"; } foreach ( $node->children as $item ) { $this->_render_item( $item ); } echo '</ul>'; } /** * @since 3.3.0 * * @param object $node */ final protected function _render_item( $node ) { if ( 'item' !== $node->type ) { return; } $is_parent = ! empty( $node->children ); $has_link = ! empty( $node->href ); $is_root_top_item = 'root-default' === $node->parent; $is_top_secondary_item = 'top-secondary' === $node->parent; // Allow only numeric values, then casted to integers, and allow a tabindex value of `0` for a11y. $tabindex = ( isset( $node->meta['tabindex'] ) && is_numeric( $node->meta['tabindex'] ) ) ? (int) $node->meta['tabindex'] : ''; $aria_attributes = ( '' !== $tabindex ) ? ' tabindex="' . $tabindex . '"' : ''; $aria_attributes .= ' role="menuitem"'; $menuclass = ''; $arrow = ''; if ( $is_parent ) { $menuclass = 'menupop '; $aria_attributes .= ' aria-expanded="false"'; } if ( ! empty( $node->meta['class'] ) ) { $menuclass .= $node->meta['class']; } // Print the arrow icon for the menu children with children. if ( ! $is_root_top_item && ! $is_top_secondary_item && $is_parent ) { $arrow = '<span class="wp-admin-bar-arrow" aria-hidden="true"></span>'; } if ( $menuclass ) { $menuclass = ' class="' . esc_attr( trim( $menuclass ) ) . '"'; } echo "<li role='group' id='" . esc_attr( 'wp-admin-bar-' . $node->id ) . "'$menuclass>"; if ( $has_link ) { $attributes = array( 'onclick', 'target', 'title', 'rel', 'lang', 'dir' ); echo "<a class='ab-item'$aria_attributes href='" . esc_url( $node->href ) . "'"; } else { $attributes = array( 'onclick', 'target', 'title', 'rel', 'lang', 'dir' ); echo '<div class="ab-item ab-empty-item"' . $aria_attributes; } foreach ( $attributes as $attribute ) { if ( empty( $node->meta[ $attribute ] ) ) { continue; } if ( 'onclick' === $attribute ) { echo " $attribute='" . esc_js( $node->meta[ $attribute ] ) . "'"; } else { echo " $attribute='" . esc_attr( $node->meta[ $attribute ] ) . "'"; } } echo ">{$arrow}{$node->title}"; if ( $has_link ) { echo '</a>'; } else { echo '</div>'; } if ( $is_parent ) { echo '<div class="ab-sub-wrapper">'; foreach ( $node->children as $group ) { if ( empty( $node->meta['menu_title'] ) ) { $this->_render_group( $group, false ); } else { $this->_render_group( $group, $node->meta['menu_title'] ); } } echo '</div>'; } if ( ! empty( $node->meta['html'] ) ) { echo $node->meta['html']; } echo '</li>'; } /** * Renders toolbar items recursively. * * @since 3.1.0 * @deprecated 3.3.0 Use WP_Admin_Bar::_render_item() or WP_Admin_bar::render() instead. * @see WP_Admin_Bar::_render_item() * @see WP_Admin_Bar::render() * * @param string $id Unused. * @param object $node */ public function recursive_render( $id, $node ) { _deprecated_function( __METHOD__, '3.3.0', 'WP_Admin_bar::render(), WP_Admin_Bar::_render_item()' ); $this->_render_item( $node ); } /** * Adds menus to the admin bar. * * @since 3.1.0 */ public function add_menus() { // User-related, aligned right. add_action( 'admin_bar_menu', 'wp_admin_bar_my_account_menu', 0 ); add_action( 'admin_bar_menu', 'wp_admin_bar_my_account_item', 9991 ); add_action( 'admin_bar_menu', 'wp_admin_bar_recovery_mode_menu', 9992 ); add_action( 'admin_bar_menu', 'wp_admin_bar_search_menu', 9999 ); // Site-related. add_action( 'admin_bar_menu', 'wp_admin_bar_sidebar_toggle', 0 ); add_action( 'admin_bar_menu', 'wp_admin_bar_wp_menu', 10 ); add_action( 'admin_bar_menu', 'wp_admin_bar_my_sites_menu', 20 ); add_action( 'admin_bar_menu', 'wp_admin_bar_site_menu', 30 ); add_action( 'admin_bar_menu', 'wp_admin_bar_edit_site_menu', 40 ); add_action( 'admin_bar_menu', 'wp_admin_bar_customize_menu', 40 ); add_action( 'admin_bar_menu', 'wp_admin_bar_updates_menu', 50 ); // Content-related. if ( ! is_network_admin() && ! is_user_admin() ) { add_action( 'admin_bar_menu', 'wp_admin_bar_comments_menu', 60 ); add_action( 'admin_bar_menu', 'wp_admin_bar_new_content_menu', 70 ); } add_action( 'admin_bar_menu', 'wp_admin_bar_edit_menu', 80 ); add_action( 'admin_bar_menu', 'wp_admin_bar_add_secondary_groups', 200 ); /** * Fires after menus are added to the menu bar. * * @since 3.1.0 */ do_action( 'add_admin_bar_menus' ); } }
Save
cmd:
run