সতর্কতা: এটি কেবল ডেভ ইনস্টলগুলির জন্য পরীক্ষা এবং উত্পাদন সাইট নয় just
আমি কৌতূহলী ছিলাম যে কোনও কার্যকারিতা আছে কিনা, যারা তাদের ডিভ ইনস্টলগুলিতে মাল্টিসাইটগুলি বিকাশ করতে চান তবে এবং বিভিন্ন বন্দরগুলিতে :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
।