From: Daniel Bachhuber Date: Fri, 22 Nov 2013 16:14:11 +0000 (-0800) Subject: Introduce `\WP_CLI::set_url()`, which will set the URL context for the execution. X-Git-Tag: v0.13.0~25^2~4 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=ab45bfd97b83e3e4fcd66add340f6e985a38ebb2;p=wvm%2Fwvm.git Introduce `\WP_CLI::set_url()`, which will set the URL context for the execution. --- diff --git a/php/WP_CLI/Runner.php b/php/WP_CLI/Runner.php index 4f7b0fa7..68b345ff 100644 --- a/php/WP_CLI/Runner.php +++ b/php/WP_CLI/Runner.php @@ -480,10 +480,8 @@ class Runner { // Handle --url parameter $url = self::guess_url( $this->config ); - if ( $url ) { - $url_parts = self::parse_url( $url ); - self::set_url_params( $url_parts ); - } + if ( $url ) + \WP_CLI::set_url( $url ); $this->do_early_invoke( 'before_wp_load' ); @@ -515,12 +513,13 @@ class Runner { // We really need a URL here if ( !isset( $_SERVER['HTTP_HOST'] ) ) { - $url_parts = self::parse_url( 'http://example.com' ); - self::set_url_params( $url_parts ); + $url = 'http://example.com'; + \WP_CLI::set_url( $url ); } if ( 'multisite-install' == $this->arguments[1] ) { // need to fake some globals to skip the checks in wp-includes/ms-settings.php + $url_parts = self::parse_url( $url ); self::fake_current_site_blog( $url_parts ); if ( !defined( 'COOKIEHASH' ) ) { diff --git a/php/class-wp-cli.php b/php/class-wp-cli.php index abe3a592..d412adb1 100644 --- a/php/class-wp-cli.php +++ b/php/class-wp-cli.php @@ -84,6 +84,14 @@ class WP_CLI { } /** + * Set the context in which WP-CLI should be run + */ + static function set_url( $url ) { + $url_parts = WP_CLI\Runner::parse_url( $url ); + WP_CLI\Runner::set_url_params( $url_parts ); + } + + /** * @return WpHttpCacheManager */ static function get_http_cache_manager() {