경고 : 이것은 프로덕션 사이트가 아닌 개발자 설치에 대한 테스트입니다.
나는 그들의 dev에 설치 횟수에 있지만 다른 것보다 포트에서 멀티 사이트를 개발할하고자하는 사람들을위한 해결 방법이 있다면 궁금했다 :80
및 :443
예 :8080
.
Henri Benoit 의이 블로그 게시물 만 찾았 습니다 . 여기에서 핵심 제한 사항을 해결하기 위해 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;
} );
} );
방금 dev 설치에서 이것을 테스트했지만 더 많은 검사가 필요할 수도 있습니다. ;-)
echo get_clean_basedomain();
무엇입니까? 지원되는 포트는:80
및 것 같습니다:443
.