İlk olarak, bu süreçle ilgili birkaç gönderi okudum . Bununla birlikte, çeşitli nedenlerden ötürü, sürecin soyutlanmış örneklerin bile eksik olması veya belki de çok soyutlanmış olması nedeniyle uygulanması veya sorunlarının giderilmesi zor olmaya devam etmektedir. Ve birkaç "yapamaz" mesaj var, neredeyse her zaman 3.5 ile takip ediyor ", şimdi" uyarılar yapabilirsiniz, bu yüzden şüphesiz önemsiz olsa da, belirsiz olup olmayacağı.
Özet:
Bir wordpress çoklu sitesini (WPMS) root.com'dan root / bloglara nasıl taşıyabilirim?
Bu örnekte, bir WPMS'yi "root.com" dan "root.com/blogs" e taşıyoruz
Veritabanındaki ve wp-config.php'deki yolları uygun şekilde güncellemem gerektiğini anlıyorum. Görünüşe göre .htaccess'i de güncellemem gerekebilir? Ayrıca arama / değiştirme ve mysql sorgu güncellemeleri ile serileştirme sorununun farkındayım.
3.5 sürümüne güncellediğim bir WPMS'im var. Alan adı ve yol bilgisi içeren aşağıdaki tabloları buldum
Alt dizine geçmeden önce mevcut çalışma yapılandırması
1. wp_blogs
select blog_id, domain, path from wp_blogs;
+---------+-------------+--------+
| blog_id | domain | path |
+---------+-------------+--------+
| 1 | root.com | / |
| 2 | root.com | /matt/ |
+---------+-------------+--------+
2. wp_site
select * in wp_site;
+----+-------------+------+
| id | domain | path |
+----+-------------+------+
| 1 | root.com | / |
+----+-------------+------+
3. blog_id, aşağıdakileri içeren wp _ # _ seçenekler tablosuna karşılık gelir:
select option_name,option_value from wp_2_options
where option_name = 'home' or option_name = 'siteurl';
+-------------+--------------------------+
| option_name | option_value |
+-------------+--------------------------+
| home | http://root.com/matt/ |
| siteurl | http://root.com/matt/ |
+-------------+--------------------------+
4. wp-config.php dosyamda WPMS'ye özel aşağıdaki satırlar var:
define('WP_ALLOW_MULTISITE', true);
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false);
$base = '/';
define( 'DOMAIN_CURRENT_SITE', 'root.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );
5. Son olarak, .htaccess'imde :
RewriteEngine On
RewriteBase /
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).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
Siteyi taşımak için gerekli güncellemeler
Bana öyle geliyor ki sitemi / blog'lara taşımak için:
1. wp_blogs dosyasını güncelleyin
mysql> update wp_blogs set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/');
select blog_id, domain, path from wp_blogs where blog_id < 3;
+---------+-------------+--------------+
| blog_id | domain | path |
+---------+-------------+--------------+
| 1 | root.com | /blogs/ |
| 2 | root.com | /blogs/matt/ |
+---------+-------------+--------------+
2. wp_site öğesini güncelleyin
update wp_site set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/');
select * from wp_site;
+----+-------------+------------+
| id | domain | path |
+----+-------------+------------+
| 1 | root.com | /blogs/ |
+----+-------------+------------+
3. wp _ # _ seçenekleri
+-------------+--------------------------------+
| option_name | option_value |
+-------------+--------------------------------+
| home | http://root.com/blogs/matt/ |
| siteurl | http://root.com/blogs/matt/ |
+-------------+--------------------------------+
4. wp_config.php
define('WP_ALLOW_MULTISITE', true);
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false);
$base = '/blogs/';
define( 'DOMAIN_CURRENT_SITE', 'root.com' );
define( 'PATH_CURRENT_SITE', '/blogs/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );
not: Bu adımın uygun şekilde nasıl güncellendiği açık değil
5. .htaccess
Belirsiz ".htaccess'i uygun şekilde güncelle" talimatlarını buldum, ancak özellikleri değil. RewriteBase güncellensin mi? Root.com'u root.com/blogs dosyasına taşıdığımda .htaccess dosyasındaki hangi satırları güncelleyeceğim?
Yukarıdaki işlemde eksikler yazılarda bulunan yollar olacaktır. Benim druthers bu daha temel güncellemeleri yaptıktan sonra, arama ve değiştirme aracını kullanmaktır; yoksa yanılıyor muyum?
Güncelleme bungeshea , evet, ben RewriteBase "bloglar" alt dizin işaret, yani,
RewriteBase /Blogs
Son olarak, http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ hakkında bilmiyorsanız bilmeniz gerekir. Bu mükemmel.
update wp_blogs set domain=concat(domain, '/blogs'), path=concat(path, 'blogs/');
olmaması gerekirupdate wp_blogs set path=concat('/blogs',path);