WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Самая быстрая Тема-конструктор для WordPress
функция не описана

Theme_Upgrader::check_parent_theme_filter() public WP 3.4.0

Check if a child theme is being installed and we need to install its parent.

Hooked to the 'upgrader_post_install' filter by Theme_Upgrader::install().

Это метод класса: Theme_Upgrader{}

Хуков нет.

Возвращает

true/false.

Использование

$Theme_Upgrader = new Theme_Upgrader();
$Theme_Upgrader->check_parent_theme_filter( $install_result, $hook_extra, $child_result );
$install_result(true/false) (обязательный)
$hook_extra(массив) (обязательный)
$child_result(массив) (обязательный)

Список изменений

С версии 3.4.0 Введена.

Код Theme_Upgrader::check_parent_theme_filter() WP 5.5.1

<?php
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'];

	$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 parent's 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;
}