Theme_Upgrader::install() – Install a theme package.

You appear to be a bot. Output may be restricted

Description

Install a theme package.

Usage

$bool|WP_Error = Theme_Upgrader::install( $package, $args );

Parameters

$package
( string ) required – The full local path or URI of the package.
$args
( array ) optional – { Optional. Other arguments for installing a theme package. Default empty array.
$clear_update_cache
( bool ) optional – Whether to clear the updates cache if successful. Default true. }

Returns

bool|WP_Error True if the installation was successful, false or a WP_Error object otherwise.

Source

File name: wordpress/wp-admin/includes/class-theme-upgrader.php
Lines:

1 to 49 of 49
  public function install( $package, $args = array() ) {
    $defaults    = array(
      'clear_update_cache' => true,
      'overwrite_package'  => false, // Do not overwrite files.
    );
    $parsed_args = wp_parse_args( $args, $defaults );

    $this->init();
    $this->Theme_Upgrader::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' => $parsed_args['overwrite_package'],
        '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'] );

    if ( $parsed_args['overwrite_package'] ) {
      
/** This action is documented in wp-admin/includes/class-plugin-upgrader.php */
      do_action( 'upgrader_overwrote_package', $package, $this->new_theme_data, 'theme' );
    }

    return true;
  }
 

 View on GitHub View on Trac