আপনি যদি একাধিক ব্লগ চালাতে চান তবে প্রতিবার আগের ব্লগটি পুনরুদ্ধার করার দরকার নেই। কেবল বেড়ে ওঠা একটাই $GLOBALS['_wp_switched_stack']
- ব্লগ আইডি সহ একটি অ্যারে, উদ্বিগ্ন হওয়ার কিছু নেই nothing
তবে মনে রাখবেন, দ্বিতীয় স্যুইচের পরে আর restore_current_blog()
(!!) কাজ করবে না কারণ এটি পূর্ববর্তী ব্লগটি ব্যবহার করে - যা তখন প্রথম ব্লগ নয় । সুতরাং প্রথম ব্লগ আইডি সঞ্চয় করুন এবং কল করুন ...
switch_to_blog( $first_blog_id );
unset ( $GLOBALS['_wp_switched_stack'] );
$GLOBALS['switched'] = false;
… restore_current_blog()
আপনি হয়ে গেলে এর পরিবর্তে । গ্লোবাল ভেরিয়েবলগুলি অবশ্যই পুনরায় সেট করতে হবে, বা আপনি @ ব্যবহারকারী42826 দ্বারা উল্লিখিত সমস্যাগুলিতে চলে যাবেন 28
পারফরম্যান্স প্রভাব বিশাল। আমি একটি স্থানীয় ইনস্টলেশন 12 টি সাইট সহ কয়েকটি পরীক্ষা চালিয়েছি:
$sites = wp_get_sites();
print '<pre>' . count( $sites ) . " sites\n";
timer_start();
print 'With restore_current_blog(): ';
foreach ( $sites as $site ) {
switch_to_blog( $site[ 'blog_id' ] );
restore_current_blog();
}
timer_stop( 1, 9 );
print "\nWithout restore_current_blog(): ";
timer_start();
$current_site = get_current_blog_id();
foreach ( $sites as $site ) {
switch_to_blog( $site[ 'blog_id' ] );
}
switch_to_blog( $current_site );
$GLOBALS['_wp_switched_stack'] = array();
$GLOBALS['switched'] = FALSE;
timer_stop( 1, 9 );
print '</pre>';
ফলাফল:
12 sites
With restore_current_blog(): 0.010648012
Without restore_current_blog(): 0.005203962
ব্যবহার restore_current_blog()
প্রতিটি সুইচ পর সময় যে শুধু সুইচিং জন্য প্রয়োজন হয় দ্বিগুণ।