ด้วยเครือข่าย WordPress Multisite พร้อมกับบล็อกหลักและสมมติว่าเนื้อหาทั้งหมดถูกย้ายไปยังบล็อกนั้นจะมีวิธีใดที่จะยุบเครือข่ายกลับลงใน WordPress มาตรฐานที่ไม่ใช่เครือข่ายไม่ใช่ติดตั้งหลายไซต์
ด้วยเครือข่าย WordPress Multisite พร้อมกับบล็อกหลักและสมมติว่าเนื้อหาทั้งหมดถูกย้ายไปยังบล็อกนั้นจะมีวิธีใดที่จะยุบเครือข่ายกลับลงใน WordPress มาตรฐานที่ไม่ใช่เครือข่ายไม่ใช่ติดตั้งหลายไซต์
คำตอบ:
ฉันได้ทำตามขั้นตอนในการแยกไซต์จากการติดตั้งแบบหลายไซต์ไปยังอินสแตนซ์เดียวตอนนี้:
DELETE FROM wp_usermeta WHERE user_id NOT IN( SELECT distinct(user_id) FROM wp_usermeta where meta_key LIKE 'wp_SITEID_%' );
DELETE FROM wp_users WHERE ID NOT IN( SELECT distinct(user_id) FROM wp_usermeta where meta_key LIKE 'wp_SITEID_%' );
UPDATE wp_usermeta SET meta_key = REPLACE( meta_key, 'wp_SITEID_', 'wp_' ) WHERE meta_key LIKE 'wp_SITEID_%';
UPDATE wp_options SET option_name = REPLACE( option_name, 'wp_SITEID_', 'wp_' ) WHERE option_name LIKE 'wp_SITEID_%';
wp-config.php
แต่อย่าคลิก 'เรียกใช้การติดตั้ง'blogs.dir/SITE_ID/files
ด้วยuploads
และถ้าคุณกำลังจะเปลี่ยน URL เว็บไซต์ของคุณค้นหาและแทนที่ด้วยoldsite.com
newsite.com
ความพยายามที่ค่อนข้างยุติธรรมและคุณต้องระวังการแก้ไขฐานข้อมูล แต่นั่นเป็นสิ่งเดียวที่ฉันสามารถเห็นเพื่อแยกไซต์เดียวจากหลายไซต์ที่มีอยู่พร้อมการตั้งค่าทั้งหมด ฯลฯ ... ไม่เป็นอันตราย
แก้ไข:
ตามที่ @Jake ฉันลืมพูดถึงขั้นตอนสุดท้ายที่คุณอาจต้องทำเช่น ค้นหา / แทนที่ URL เก่า ฉันได้ปรับปรุงรายการให้สอดคล้อง
SITEID
เป็นรหัสไซต์ที่ถูกต้อง แทนที่จะเป็นเช่นนั้นคุณควรพูดถึงว่าsiteurl
และhome
ตัวเลือกต่าง ๆ จะต้องได้รับการปรับปรุงในwp_options
ตาราง ส่วนที่เหลือเป็นรายการตรวจสอบที่ดีงาม ขอบคุณ
เป็นไปได้ที่จะลบการติดตั้งแบบหลายไซต์โดยไม่ต้องติดตั้งบล็อกใหม่ ทำตามขั้นตอน
WP_ALLOW_MULTISITE
ใน wp-config.php ของคุณเป็นFALSE
ลบหรือแสดงความคิดเห็นการตั้งค่า MU ในwp-config.php
เช่นนี้:
/**
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
$base = '/wordpress/';
define( 'DOMAIN_CURRENT_SITE', 'localhost' );
define( 'PATH_CURRENT_SITE', '/wordpress/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );
*/
ลบการตั้งค่า MU ออก.htaccess
เช่นเดียวกับแหล่งที่มาด้านล่าง:
# BEGIN WordPress
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPress
สร้างลิงก์ถาวรใหม่ในแบ็กเอนด์ wp-admin/options-permalink.php
และอาจคัดลอกผลลัพธ์ใน.htaccess
ถ้าเป็นไปไม่ได้สำหรับ WP สิทธิ์ในการเขียนไฟล์นี้
ลบรายการที่ไม่เป็นประโยชน์ในตาราง users
; ใช้คำสั่ง follow sql ในเครื่องมือเช่น phpMyAdmin หรือ Adminer
`ALTER TABLE `wp_users` DROP `spam`, DROP `deleted`;`
ตารางติดตามสามารถดร็อปได้:
(เปลี่ยนwp_
เป็นคำนำหน้าฐานข้อมูลของคุณ)
ตอนนี้คุณมีเพียงตารางสุดท้ายของบล็อกอื่น ๆ ของเครือข่าย หากคุณจะใช้เนื้อหานี้ด้วยให้ทำการส่งออกสิ่งนี้มาก่อนผ่านการส่งออก WordPress เป็น XML และนำเข้าตอนนี้ในการติดตั้งเดี่ยวทั้งหมด
จริงๆแล้วมันเป็นไปได้และค่อนข้างง่ายที่จะทำ; ฉันทำเองหลายครั้ง
มีสิ่งที่ต้องพิจารณา
การแสดงความคิดเห็นเกี่ยวกับการกำหนดหลายไซต์ (?) ใน wp-config และการปรับปรุงลิงก์ถาวรของคุณจะเปลี่ยนไซต์กลับเป็นโหมดเดียว / โหมดเริ่มต้น สิ่งที่คุณต้องทำคือล้างฐานข้อมูลของคุณ
หากด้วยเหตุผลบางประการคุณไม่สามารถเข้าถึง wp-admin ของคุณเพื่ออัปเดตลิงก์ได้เพียงลบไฟล์. htaccess ของคุณ WordPress จะสร้างใหม่ให้คุณในโหมดไซต์เดียว
ฉันจะทำให้ดีที่สุดเพื่อค้นหาลิงก์ไปยังรหัส / บทความสนับสนุนและอัปเดตคำตอบด้วย
นี่คือลิงค์ไปยังหนึ่งรายการในฟอรัมการสนับสนุนhttp://wordpress.org/support/topic/revert-to-single-site
กระบวนการพื้นฐานที่นี่ทำงานได้ดีแม้ใน WP 3.5.1 One clarification: หากคุณตั้งชื่อไซต์ย่อยของคุณคุณจะต้องเปลี่ยนลิงค์ในฐานข้อมูลเพื่อลบชื่อนั้น หากไซต์ย่อยของฉันชื่อ ... mysite.com/comics หลังจากทำตามขั้นตอนข้างต้น WP ของคุณจะค้นหา mysite.com/comics และรับข้อผิดพลาดในลิงก์ถาวร แก้ไขตาราง WP-OPTIONS ที่กำลังมองหาส่วนขยาย / comics และลบออก นอกจากนี้ให้ตรวจสอบว่าไดเรกทอรีอัปโหลดชี้ไปยังตำแหน่งที่ถูกต้อง - มันอาจยังแสดงรายการบล็อก.dirและตอนนี้ควรชี้ไปที่ wp-content / uploads /
จุดสำคัญมากที่ไม่ควรพลาดและมีการพูดถึงน้อยคือคุณควรมีบรรทัดต่อไปนี้:
define( 'WP_ALLOW_MULTISITE',
...
แต่ควรเปลี่ยนให้อัปเดตเป็น
define( 'WP_ALLOW_MULTISITE', 0 );