Dada uma rede multissite do WordPress, com um blog principal, e assumindo que todo o conteúdo foi movido para esse blog, como reduzir a rede a uma instalação padrão não multisite sem rede do WordPress?
Dada uma rede multissite do WordPress, com um blog principal, e assumindo que todo o conteúdo foi movido para esse blog, como reduzir a rede a uma instalação padrão não multisite sem rede do WordPress?
Respostas:
Eu segui as etapas para extrair um site de uma instalação multisite para uma única instância agora:
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
mas não clique em 'Executar a instalação'blogs.dir/SITE_ID/files
por uploads
e, se você estiver alterando, procure oldsite.com
e substitua por URL do site newsite.com
.Um pouco de esforço e você precisa ter cuidado com as edições do banco de dados, mas é o único que consigo extrair para um único site de um multisite existente com todas as suas configurações etc ... intactas.
EDITAR:
Conforme observado por @Jake, eu esqueci de mencionar as etapas finais que você pode precisar seguir, por exemplo. pesquisa / substituição de URLs antigos. Atualizei a lista de acordo.
SITEID
para o ID do site correto. Em vez disso, você deve mencionar que as opções siteurl
e home
provavelmente precisarão ser atualizadas na wp_options
tabela. O resto disso foi uma boa lista de verificação. Obrigado.
É possível remover a instalação multisite sem reinstalar um novo blog. Siga os passos.
WP_ALLOW_MULTISITE
no seu wp-config.php paraFALSE
Remova ou comente as configurações da MU wp-config.php
, desta forma:
/**
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 );
*/
Remova as configurações de MU de .htaccess
, como na fonte abaixo:
# 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
Crie os permalinks novos, no back-end, wp-admin/options-permalink.php
e talvez copie o resultado .htaccess
, se não for possível para o WP, direitos de gravação neste arquivo.
Remova entradas não úteis na tabela users
; use a instrução sql a seguir em uma ferramenta, como phpMyAdmin ou Adminer
`ALTER TABLE `wp_users` DROP `spam`, DROP `deleted`;`
As tabelas a seguir podem ser descartadas:
(mude wp_
para o prefixo do banco de dados)
Agora você tem apenas as últimas tabelas de outros blogs da rede. Se você usar esse conteúdo também, exporte-o antes via WordPress exportar como XML e importe agora na instalação única limpa.
Na verdade, é possível e bastante fácil de fazer; Eu já fiz isso várias vezes.
Há coisas a considerar.
Comentar o multi site define (?) Em wp-config e atualizar seus permalinks reverterá o site para o site único / modo padrão. Então tudo que você precisa fazer é limpar seu banco de dados.
Se, por algum motivo, você não conseguir acessar o wp-admin para atualizar os permalinks, basta excluir o arquivo .htaccess. O WordPress irá recriá-lo para você no modo de site único.
Farei o possível para encontrar o link para o artigo sobre códigos / suporte e atualizar a resposta com ele.
Aqui está um link para um item no fórum de suporte http://wordpress.org/support/topic/revert-to-single-site
Os processos básicos aqui funcionam bem, mesmo no WP 3.5.1. Um esclarecimento: se você nomeou seu subsite como algo, precisará alterar os links no banco de dados para remover esse nome. Se meu subsite foi nomeado ... mysite.com/comics, depois de seguir os procedimentos acima, o seu WP procurará mysite.com/comics e obterá erros nos permalinks. Edite a tabela WP-OPTIONS procurando a extensão / comics e remova-a. Além disso, verifique se o diretório Uploads está apontando para o local apropriado - ele ainda pode mostrar uma entrada blogs.dir e agora deve apontar para wp-content / uploads /