Ao iniciar com uma nova instalação de rede, a primeira etapa é uma instalação de site único que possui uma linha adicional no wp-config.php
arquivo:
define( 'WP_ALLOW_MULTISITE', true );
Depois disso Tools > Network Setup
, digite alguns detalhes, como o nome da rede e o email do super administrador e, finalmente, pressione o botão para executar a instalação.
O próximo passo que aparece é na verdade dois passos:
Adicione constantes adicionais ao seu
wp-config.php
arquivodefine( 'MULTISITE', true ); define( 'SUBDOMAIN_INSTALL', true ); define( 'DOMAIN_CURRENT_SITE', 'example.com' ); define( 'PATH_CURRENT_SITE', '/' ); define( 'SITE_ID_CURRENT_SITE', true ); define( 'BLOG_ID_CURRENT_SITE', true );
- Adicione algumas regras ao seu
.htaccess
arquivo.
Como não faço instalações únicas de sites (não há mais motivo para isso), gostaria de adicionar essas constantes dinamicamente ao meu wp-config.php
arquivo:
define( 'WP_ALLOW_MULTISITE', true );
if ( SOME_CHECK_IF_STEP-1_WAS_PASSED )
{
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
define( 'DOMAIN_CURRENT_SITE', 'example.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', true );
define( 'BLOG_ID_CURRENT_SITE', true );
}
Portanto, não preciso ir a wp-config.php
cada vez e editá-lo novamente.
A primeira coisa que me ocorreu foi verificar o banco de dados da {$wpdb->prefix}sitemeta
tabela, mas não quero fazer uma consulta adicional em cada carregamento do site. A segunda coisa que pensei foi verificar se o blogs.dir
já existe, mas esse não é o caso.
Pergunta: Como posso indicar que já passei na primeira etapa da configuração da rede de uma maneira que não possui uma sobrecarga enorme ou diminui o desempenho.
wp-config
Gerador Grunt .Respostas:
Não testei isso, mas se você precisar encontrar uma solução desse tipo, provavelmente tentaria fazê-lo da seguinte maneira, adicionando um script à
if ( SOME_CHECK_IF_STEP-1_WAS_PASSED )
condição descrita acima:{$wpdb->prefix}sitemeta
tabela;wp-config.php
-> retorne true.O trabalho cron do WP reescreveria
wp-config.php
para eliminar a verificação completamente.Dessa forma, você só terá uma solicitação de banco de dados adicional até que a rede esteja configurada e o trabalho cron funcione.
Note que vale a pena o esforço, embora ...;)
fonte
wp-config.php
arquivo diretamente, mas suponho que seria bloqueado naquele momento ...Inspecionar
wp-admin/network.php
ewp-admin/includes/schema.php
arquivos. Você pode criar uma condição com base em WP_INSTALLING_NETWORKAtualizar:
fonte
wp-load.php
puxawp-config.php
mais cedo, portantoWP_INSTALLING_NETWORK
não será definido. Mas, mesmo que esteja disponível, ele estará disponível apenas durante a configuração da rede. O que eu faria para deixar as constantes após a instalação ser executada?index.php
puxa./wp-blog-header.php
), que então puxawp-load.php
e de láwp-config.php
é chamado. Uma visão geral pode ser encontrada aqui .admin.php
é chamado antessetup.php
enetwork.php
(e se chamawp-load.php
no início), portanto, o config já está sendo executado.WP_INSTALLING_NETWORK
ficadefine()
sem verificar se já édefined()
, eu criaria umFatal Error
lá. Por favor, me mostre errado e faça um teste. :)wp-config.php
arquivo gravável é um risco à segurança. Considere que você tem todos os detalhes importantes lá. Eu mostrei a você que não há como isso funcionar (sem ter um arquivo de configuração gravável). O que estou procurando é um indicador (que não diminua a velocidade do sistema) que eu possa verificar e usar como opção. Tudo o resto não vai funcionar.Se sua configuração for sempre a mesma (instalação de subdomínio), você poderá colar todo o pedaço na sua primeira etapa:
define( 'MULTISITE', true ); define( 'SUBDOMAIN_INSTALL', true ); define( 'DOMAIN_CURRENT_SITE', $_SERVER[ 'HTTP_HOST' ] ); define( 'PATH_CURRENT_SITE', '/' ); define( 'SITE_ID_CURRENT_SITE', true ); define( 'BLOG_ID_CURRENT_SITE', true );
fonte
DOMAIN_CURRENT_SITE
constante correta que o WordPress fornece depois de concluir a configuração interna.