[ Avaa Bypassed ]




Upload:

Command:

www-data@18.227.49.178: ~ $
<?php
/**
 * WP_Navigation_Fallback class
 *
 * Manages fallback behavior for Navigation menus.
 *
 * @package WordPress
 * @subpackage Navigation
 * @since 6.3.0
 */

/**
 * Manages fallback behavior for Navigation menus.
 *
 * @access public
 * @since 6.3.0
 */
class WP_Navigation_Fallback {

	/**
	 * Gets (and/or creates) an appropriate fallback Navigation Menu.
	 *
	 * @since 6.3.0
	 *
	 * @return WP_Post|null the fallback Navigation Post or null.
	 */
	public static function get_fallback() {

		/**
		 * Filters whether or not a fallback should be created.
		 *
		 * @since 6.3.0
		 *
		 * @param bool Whether to create a fallback navigation menu. Default true.
		 */
		$should_create_fallback = apply_filters( 'wp_navigation_should_create_fallback', true );

		$fallback = static::get_most_recently_published_navigation();

		if ( $fallback || ! $should_create_fallback ) {
			return $fallback;
		}

		$fallback = static::create_classic_menu_fallback();

		if ( $fallback && ! is_wp_error( $fallback ) ) {
			// Return the newly created fallback post object which will now be the most recently created navigation menu.
			return $fallback instanceof WP_Post ? $fallback : static::get_most_recently_published_navigation();
		}

		$fallback = static::create_default_fallback();

		if ( $fallback && ! is_wp_error( $fallback ) ) {
			// Return the newly created fallback post object which will now be the most recently created navigation menu.
			return $fallback instanceof WP_Post ? $fallback : static::get_most_recently_published_navigation();
		}

		return null;
	}

	/**
	 * Finds the most recently published `wp_navigation` post type.
	 *
	 * @since 6.3.0
	 *
	 * @return WP_Post|null the first non-empty Navigation or null.
	 */
	private static function get_most_recently_published_navigation() {

		$parsed_args = array(
			'post_type'              => 'wp_navigation',
			'no_found_rows'          => true,
			'update_post_meta_cache' => false,
			'update_post_term_cache' => false,
			'order'                  => 'DESC',
			'orderby'                => 'date',
			'post_status'            => 'publish',
			'posts_per_page'         => 1,
		);

		$navigation_post = new WP_Query( $parsed_args );

		if ( count( $navigation_post->posts ) > 0 ) {
			return $navigation_post->posts[0];
		}

		return null;
	}

	/**
	 * Creates a Navigation Menu post from a Classic Menu.
	 *
	 * @since 6.3.0
	 *
	 * @return int|WP_Error The post ID of the default fallback menu or a WP_Error object.
	 */
	private static function create_classic_menu_fallback() {
		// See if we have a classic menu.
		$classic_nav_menu = static::get_fallback_classic_menu();

		if ( ! $classic_nav_menu ) {
			return new WP_Error( 'no_classic_menus', __( 'No Classic Menus found.' ) );
		}

		// If there is a classic menu then convert it to blocks.
		$classic_nav_menu_blocks = WP_Classic_To_Block_Menu_Converter::convert( $classic_nav_menu );

		if ( is_wp_error( $classic_nav_menu_blocks ) ) {
			return $classic_nav_menu_blocks;
		}

		if ( empty( $classic_nav_menu_blocks ) ) {
			return new WP_Error( 'cannot_convert_classic_menu', __( 'Unable to convert Classic Menu to blocks.' ) );
		}

		// Create a new navigation menu from the classic menu.
		$classic_menu_fallback = wp_insert_post(
			array(
				'post_content' => $classic_nav_menu_blocks,
				'post_title'   => $classic_nav_menu->name,
				'post_name'    => $classic_nav_menu->slug,
				'post_status'  => 'publish',
				'post_type'    => 'wp_navigation',
			),
			true // So that we can check whether the result is an error.
		);

		return $classic_menu_fallback;
	}

	/**
	 * Determines the most appropriate classic navigation menu to use as a fallback.
	 *
	 * @since 6.3.0
	 *
	 * @return WP_Term|null The most appropriate classic navigation menu to use as a fallback.
	 */
	private static function get_fallback_classic_menu() {
		$classic_nav_menus = wp_get_nav_menus();

		if ( ! $classic_nav_menus || is_wp_error( $classic_nav_menus ) ) {
			return null;
		}

		$nav_menu = static::get_nav_menu_at_primary_location();

		if ( $nav_menu ) {
			return $nav_menu;
		}

		$nav_menu = static::get_nav_menu_with_primary_slug( $classic_nav_menus );

		if ( $nav_menu ) {
			return $nav_menu;
		}

		return static::get_most_recently_created_nav_menu( $classic_nav_menus );
	}


	/**
	 * Sorts the classic menus and returns the most recently created one.
	 *
	 * @since 6.3.0
	 *
	 * @param WP_Term[] $classic_nav_menus Array of classic nav menu term objects.
	 * @return WP_Term The most recently created classic nav menu.
	 */
	private static function get_most_recently_created_nav_menu( $classic_nav_menus ) {
		usort(
			$classic_nav_menus,
			static function( $a, $b ) {
				return $b->term_id - $a->term_id;
			}
		);

		return $classic_nav_menus[0];
	}

	/**
	 * Returns the classic menu with the slug `primary` if it exists.
	 *
	 * @since 6.3.0
	 *
	 * @param WP_Term[] $classic_nav_menus Array of classic nav menu term objects.
	 * @return WP_Term|null The classic nav menu with the slug `primary` or null.
	 */
	private static function get_nav_menu_with_primary_slug( $classic_nav_menus ) {
		foreach ( $classic_nav_menus as $classic_nav_menu ) {
			if ( 'primary' === $classic_nav_menu->slug ) {
				return $classic_nav_menu;
			}
		}

		return null;
	}


	/**
	 * Gets the classic menu assigned to the `primary` navigation menu location
	 * if it exists.
	 *
	 * @since 6.3.0
	 *
	 * @return WP_Term|null The classic nav menu assigned to the `primary` location or null.
	 */
	private static function get_nav_menu_at_primary_location() {
		$locations = get_nav_menu_locations();

		if ( isset( $locations['primary'] ) ) {
			$primary_menu = wp_get_nav_menu_object( $locations['primary'] );

			if ( $primary_menu ) {
				return $primary_menu;
			}
		}

		return null;
	}

	/**
	 * Creates a default Navigation Block Menu fallback.
	 *
	 * @since 6.3.0
	 *
	 * @return int|WP_Error The post ID of the default fallback menu or a WP_Error object.
	 */
	private static function create_default_fallback() {

		$default_blocks = static::get_default_fallback_blocks();

		// Create a new navigation menu from the fallback blocks.
		$default_fallback = wp_insert_post(
			array(
				'post_content' => $default_blocks,
				'post_title'   => _x( 'Navigation', 'Title of a Navigation menu' ),
				'post_name'    => 'navigation',
				'post_status'  => 'publish',
				'post_type'    => 'wp_navigation',
			),
			true // So that we can check whether the result is an error.
		);

		return $default_fallback;
	}

	/**
	 * Gets the rendered markup for the default fallback blocks.
	 *
	 * @since 6.3.0
	 *
	 * @return string default blocks markup to use a the fallback.
	 */
	private static function get_default_fallback_blocks() {
		$registry = WP_Block_Type_Registry::get_instance();

		// If `core/page-list` is not registered then use empty blocks.
		return $registry->is_registered( 'core/page-list' ) ? '<!-- wp:page-list /-->' : '';
	}
}

Filemanager

Name Type Size Permission Actions
ID3 Folder 0755
IXR Folder 0755
PHPMailer Folder 0755
Requests Folder 0755
SimplePie Folder 0755
Text Folder 0755
assets Folder 0755
block-patterns Folder 0755
block-supports Folder 0755
blocks Folder 0755
certificates Folder 0755
css Folder 0755
customize Folder 0755
fonts Folder 0755
html-api Folder 0755
images Folder 0755
js Folder 0755
php-compat Folder 0755
pomo Folder 0755
rest-api Folder 0755
sitemaps Folder 0755
sodium_compat Folder 0755
style-engine Folder 0755
theme-compat Folder 0755
widgets Folder 0755
admin-bar.php File 34.31 KB 0644
atomlib.php File 11.67 KB 0644
author-template.php File 18.51 KB 0644
block-editor.php File 26.95 KB 0644
block-i18n.json File 316 B 0644
block-patterns.php File 15.53 KB 0644
block-template-utils.php File 47.98 KB 0644
block-template.php File 10.34 KB 0644
blocks.php File 56.34 KB 0644
bookmark-template.php File 12.61 KB 0644
bookmark.php File 15.02 KB 0644
cache-compat.php File 5.83 KB 0644
cache.php File 13.16 KB 0644
canonical.php File 32.56 KB 0644
capabilities.php File 39.09 KB 0644
category-template.php File 55.67 KB 0644
category.php File 12.4 KB 0644
class-IXR.php File 2.48 KB 0644
class-feed.php File 529 B 0644
class-http.php File 367 B 0644
class-json.php File 42.66 KB 0644
class-oembed.php File 401 B 0644
class-phpass.php File 6.55 KB 0644
class-phpmailer.php File 664 B 0644
class-pop3.php File 20.48 KB 0644
class-requests.php File 2.18 KB 0644
class-simplepie.php File 95.82 KB 0644
class-smtp.php File 457 B 0644
class-snoopy.php File 36.83 KB 0644
class-walker-category-dropdown.php File 2.42 KB 0644
class-walker-category.php File 8.28 KB 0644
class-walker-comment.php File 13.88 KB 0644
class-walker-nav-menu.php File 11.05 KB 0644
class-walker-page-dropdown.php File 2.65 KB 0644
class-walker-page.php File 7.44 KB 0644
class-wp-admin-bar.php File 16.96 KB 0644
class-wp-ajax-response.php File 5.14 KB 0644
class-wp-application-passwords.php File 12.55 KB 0644
class-wp-block-editor-context.php File 1.32 KB 0644
class-wp-block-list.php File 4.64 KB 0644
class-wp-block-parser-block.php File 2.5 KB 0644
class-wp-block-parser-frame.php File 1.87 KB 0644
class-wp-block-parser.php File 11.49 KB 0644
class-wp-block-pattern-categories-registry.php File 5.25 KB 0644
class-wp-block-patterns-registry.php File 8.57 KB 0644
class-wp-block-styles-registry.php File 5.75 KB 0644
class-wp-block-supports.php File 5.39 KB 0644
class-wp-block-template.php File 1.91 KB 0644
class-wp-block-type-registry.php File 4.9 KB 0644
class-wp-block-type.php File 13.97 KB 0644
class-wp-block.php File 8.21 KB 0644
class-wp-classic-to-block-menu-converter.php File 3.99 KB 0644
class-wp-comment-query.php File 46.71 KB 0644
class-wp-comment.php File 9.14 KB 0644
class-wp-customize-control.php File 25.24 KB 0644
class-wp-customize-manager.php File 197.42 KB 0644
class-wp-customize-nav-menus.php File 55.96 KB 0644
class-wp-customize-panel.php File 10.42 KB 0644
class-wp-customize-section.php File 10.98 KB 0644
class-wp-customize-setting.php File 29.19 KB 0644
class-wp-customize-widgets.php File 69.95 KB 0644
class-wp-date-query.php File 34.88 KB 0644
class-wp-dependencies.php File 13.73 KB 0644
class-wp-dependency.php File 2.57 KB 0644
class-wp-duotone.php File 38.44 KB 0644
class-wp-editor.php File 70.39 KB 0644
class-wp-embed.php File 15.62 KB 0644
class-wp-error.php File 7.33 KB 0644
class-wp-fatal-error-handler.php File 7.69 KB 0644
class-wp-feed-cache-transient.php File 2.53 KB 0644
class-wp-feed-cache.php File 996 B 0644
class-wp-hook.php File 15.26 KB 0644
class-wp-http-cookie.php File 7.22 KB 0644
class-wp-http-curl.php File 12.2 KB 0644
class-wp-http-encoding.php File 6.53 KB 0644
class-wp-http-ixr-client.php File 3.42 KB 0644
class-wp-http-proxy.php File 5.84 KB 0644
class-wp-http-requests-hooks.php File 1.97 KB 0644
class-wp-http-requests-response.php File 4.3 KB 0644
class-wp-http-response.php File 2.91 KB 0644
class-wp-http-streams.php File 16.42 KB 0644
class-wp-http.php File 39.4 KB 0644
class-wp-image-editor-gd.php File 16.23 KB 0644
class-wp-image-editor-imagick.php File 29.29 KB 0644
class-wp-image-editor.php File 16.73 KB 0644
class-wp-list-util.php File 7.27 KB 0644
class-wp-locale-switcher.php File 6.41 KB 0644
class-wp-locale.php File 15.74 KB 0644
class-wp-matchesmapregex.php File 1.78 KB 0644
class-wp-meta-query.php File 29.82 KB 0644
class-wp-metadata-lazyloader.php File 6.67 KB 0644
class-wp-navigation-fallback.php File 6.82 KB 0644
class-wp-network-query.php File 18.84 KB 0644
class-wp-network.php File 11.9 KB 0644
class-wp-object-cache.php File 17.18 KB 0644
class-wp-oembed-controller.php File 6.72 KB 0644
class-wp-oembed.php File 30.66 KB 0644
class-wp-paused-extensions-storage.php File 4.94 KB 0644
class-wp-post-type.php File 25.36 KB 0644
class-wp-post.php File 6.33 KB 0644
class-wp-query.php File 147.17 KB 0644
class-wp-recovery-mode-cookie-service.php File 6.72 KB 0644
class-wp-recovery-mode-email-service.php File 10.92 KB 0644
class-wp-recovery-mode-key-service.php File 4.4 KB 0644
class-wp-recovery-mode-link-service.php File 3.38 KB 0644
class-wp-recovery-mode.php File 11.17 KB 0644
class-wp-rewrite.php File 61.56 KB 0644
class-wp-role.php File 2.46 KB 0644
class-wp-roles.php File 8.38 KB 0644
class-wp-scripts.php File 27.69 KB 0644
class-wp-session-tokens.php File 7.28 KB 0644
class-wp-simplepie-file.php File 3.32 KB 0644
class-wp-simplepie-sanitize-kses.php File 1.76 KB 0644
class-wp-site-query.php File 30.29 KB 0644
class-wp-site.php File 7.28 KB 0644
class-wp-styles.php File 10.64 KB 0644
class-wp-tax-query.php File 19.09 KB 0644
class-wp-taxonomy.php File 18.13 KB 0644
class-wp-term-query.php File 39.5 KB 0644
class-wp-term.php File 5.17 KB 0644
class-wp-text-diff-renderer-inline.php File 830 B 0644
class-wp-text-diff-renderer-table.php File 16.78 KB 0644
class-wp-textdomain-registry.php File 5.84 KB 0644
class-wp-theme-json-data.php File 1.52 KB 0644
class-wp-theme-json-resolver.php File 24.09 KB 0644
class-wp-theme-json-schema.php File 4.2 KB 0644
class-wp-theme-json.php File 126.26 KB 0644
class-wp-theme.php File 54.87 KB 0644
class-wp-user-meta-session-tokens.php File 2.92 KB 0644
class-wp-user-query.php File 41.25 KB 0644
class-wp-user-request.php File 2.17 KB 0644
class-wp-user.php File 22.23 KB 0644
class-wp-walker.php File 12.86 KB 0644
class-wp-widget-factory.php File 3.27 KB 0644
class-wp-widget.php File 17.95 KB 0644
class-wp-xmlrpc-server.php File 209.11 KB 0644
class-wp.php File 25.37 KB 0644
class-wpdb.php File 117.6 KB 0644
class.wp-dependencies.php File 373 B 0644
class.wp-scripts.php File 343 B 0644
class.wp-styles.php File 338 B 0644
comment-template.php File 98.94 KB 0644
comment.php File 125.52 KB 0644
compat.php File 14.86 KB 0644
cron.php File 40.57 KB 0644
date.php File 400 B 0644
default-constants.php File 10.72 KB 0644
default-filters.php File 32.24 KB 0644
default-widgets.php File 2.17 KB 0644
deprecated.php File 155.76 KB 0644
embed-template.php File 338 B 0644
embed.php File 36.59 KB 0644
error-protection.php File 4.02 KB 0644
feed-atom-comments.php File 5.32 KB 0644
feed-atom.php File 2.98 KB 0644
feed-rdf.php File 2.61 KB 0644
feed-rss.php File 1.16 KB 0644
feed-rss2-comments.php File 3.98 KB 0644
feed-rss2.php File 3.71 KB 0644
feed.php File 22.52 KB 0644
formatting.php File 326.41 KB 0644
functions.php File 259.35 KB 0644
functions.wp-scripts.php File 14.41 KB 0644
functions.wp-styles.php File 8.38 KB 0644
general-template.php File 163.79 KB 0644
global-styles-and-settings.php File 18.4 KB 0644
http.php File 23.29 KB 0644
https-detection.php File 6.35 KB 0644
https-migration.php File 4.63 KB 0644
kses.php File 69.99 KB 0644
l10n.php File 61.31 KB 0644
link-template.php File 150.89 KB 0644
load.php File 52.69 KB 0644
locale.php File 162 B 0644
media-template.php File 60.16 KB 0644
media.php File 200.36 KB 0644
meta.php File 61.79 KB 0644
ms-blogs.php File 25.03 KB 0644
ms-default-constants.php File 4.79 KB 0644
ms-default-filters.php File 6.48 KB 0644
ms-deprecated.php File 21.25 KB 0644
ms-files.php File 2.59 KB 0644
ms-functions.php File 89.12 KB 0644
ms-load.php File 19.4 KB 0644
ms-network.php File 3.69 KB 0644
ms-settings.php File 4.03 KB 0644
ms-site.php File 39.53 KB 0644
nav-menu-template.php File 25.18 KB 0644
nav-menu.php File 43.04 KB 0644
navigation-fallback.php File 2.24 KB 0644
option.php File 78.17 KB 0644
pluggable-deprecated.php File 6.12 KB 0644
pluggable.php File 108.86 KB 0644
plugin.php File 34.63 KB 0644
post-formats.php File 6.93 KB 0644
post-template.php File 65.34 KB 0644
post-thumbnail-template.php File 10.07 KB 0644
post.php File 267.96 KB 0644
query.php File 36.16 KB 0644
registration-functions.php File 200 B 0644
registration.php File 200 B 0644
rest-api.php File 94.79 KB 0644
revision.php File 24.84 KB 0644
rewrite.php File 19.06 KB 0644
robots-template.php File 5.06 KB 0644
rss-functions.php File 255 B 0644
rss.php File 22.48 KB 0644
script-loader.php File 133.87 KB 0644
session.php File 258 B 0644
shortcodes.php File 23.29 KB 0644
sitemaps.php File 3.16 KB 0644
spl-autoload-compat.php File 441 B 0644
style-engine.php File 7.03 KB 0644
taxonomy.php File 168.83 KB 0644
template-canvas.php File 592 B 0644
template-loader.php File 2.94 KB 0644
template.php File 22.78 KB 0644
theme-i18n.json File 1.12 KB 0644
theme-previews.php File 2.76 KB 0644
theme-templates.php File 5.39 KB 0644
theme.json File 7.03 KB 0644
theme.php File 127.81 KB 0644
update.php File 35.89 KB 0644
user.php File 166.91 KB 0644
vars.php File 5.7 KB 0644
version.php File 928 B 0644
widgets.php File 68.24 KB 0644
wp-db.php File 445 B 0644
wp-diff.php File 647 B 0644