चेतावनी: यह सिर्फ देव संस्थापन के लिए एक परीक्षण है न कि उत्पादन साइटों के लिए
मैं यह देखने के लिए उत्सुक था कि क्या कोई वर्कअराउंड था, उन लोगों के लिए जो अपने देव इंस्टाल पर मल्टीसाइट्स विकसित करना चाहते हैं, लेकिन जैसे :80
और से अलग पोर्ट पर ।:443
:8080
मुझे केवल हेनरी बेनोइट का यह ब्लॉग पोस्ट मिला । वहाँ वह उदाहरण देता है कि कोर प्रतिबंधों के आसपास पाने के लिए 3.9.1 कोर को कैसे संशोधित किया जाए।
यहाँ एक आवश्यक प्लगइन है /wp-content/mu-plugins/wpse-ms-on-different-port.php
जहाँ हम कोर संशोधनों से बचने की कोशिश करते हैं:
<?php
/**
* Test for multisite support on a different port than :80 and :443 (e.g. :8080)
*
* Here we assume that the 'siteurl' and 'home' options contain the :8080 port
*
* WARNING: Not suited for production sites!
*/
/**
* Get around the problem with wpmu_create_blog() where sanitize_user()
* strips out the semicolon (:) in the $domain string
* This means created sites with hostnames of
* e.g. example.tld8080 instead of example.tld:8080
*/
add_filter( 'sanitize_user', function( $username, $raw_username, $strict )
{
// Edit the port to your needs
$port = 8080;
if( $strict // wpmu_create_blog uses strict mode
&& is_multisite() // multisite check
&& $port == parse_url( $raw_username, PHP_URL_PORT ) // raw domain has port
&& false === strpos( $username, ':' . $port ) // stripped domain is without correct port
)
$username = str_replace( $port, ':' . $port, $username ); // replace e.g. example.tld8080 to example.tld:8080
return $username;
}, 1, 3 );
/**
* Temporarly change the port (e.g. :8080 ) to :80 to get around
* the core restriction in the network.php page.
*/
add_action( 'load-network.php', function()
{
add_filter( 'option_active_plugins', function( $value )
{
add_filter( 'option_siteurl', function( $value )
{
// Edit the port to your needs
$port = 8080;
// Network step 2
if( is_multisite() || network_domain_check() )
return $value;
// Network step 1
static $count = 0;
if( 0 === $count++ )
$value = str_replace( ':' . $port, ':80', $value );
return $value;
} );
return $value;
} );
} );
मैं सिर्फ अपने देव स्थापित पर यह परीक्षण किया है, लेकिन यह पाठ्यक्रम की अधिक जांच की आवश्यकता हो सकती है ;-)
echo get_clean_basedomain();
? समर्थित पोर्ट लगता है:80
और:443
।