{"id":471,"date":"2026-05-11T09:00:27","date_gmt":"2026-05-11T12:00:27","guid":{"rendered":"https:\/\/www.portanova.com.br\/?p=1"},"modified":"2026-05-21T20:25:38","modified_gmt":"2026-05-21T23:25:38","slug":"wp-config-custom","status":"publish","type":"post","link":"https:\/\/www.portanova.com.br\/notebook\/wp-config-custom\/","title":{"rendered":"[WP] Configura\u00e7\u00f5es WP-CONFIG: Multisite e customiza\u00e7\u00f5es"},"content":{"rendered":"<h2>\ud83d\udcd8 Aula (Parte 2): Configura\u00e7\u00f5es Multisite e customiza\u00e7\u00f5es no <code>wp-config.php<\/code><\/h2>\n<p>No <a href=\"https:\/\/www.portanova.com.br\/notebook\/wp-config\/\">post anterior<\/a>, explicamos a estrutura b\u00e1sica do arquivo <code>wp-config.php<\/code>. Agora vamos nos aprofundar nas configura\u00e7\u00f5es <strong>exclusivas para Multisite<\/strong> e nas <strong>customiza\u00e7\u00f5es reais<\/strong> que usamos no <code>portanova.com.br<\/code>.<\/p>\n<p><strong>Importante:<\/strong> As constantes mostradas aqui <strong>s\u00f3 devem ser usadas em uma rede Multisite<\/strong>. Em um site WordPress normal (single site) elas <strong>n\u00e3o existem<\/strong> ou devem ser omitidas.<\/p>\n<hr \/>\n<h3>\ud83c\udf10 Configura\u00e7\u00f5es do Multisite<\/h3>\n<p>Para transformar um WordPress comum em uma rede de sites (Multisite), voc\u00ea precisa adicionar as seguintes constantes no arquivo <code>wp-config.php<\/code> (na se\u00e7\u00e3o de configura\u00e7\u00f5es customizadas):<\/p>\n<pre><code>\/\/ ===============================================\r\n\/\/ ATIVAR O MODO MULTISITE\r\n\/\/ ===============================================\r\ndefine('WP_ALLOW_MULTISITE', true);   \/\/ Permite a cria\u00e7\u00e3o da rede\r\n\r\n\/\/ Ap\u00f3s instalar a rede, o WordPress gera estas constantes automaticamente:\r\ndefine('MULTISITE', true);             \/\/ Declara que a rede est\u00e1 ativa\r\ndefine('SUBDOMAIN_INSTALL', false);    \/\/ false = usa subdiret\u00f3rios (ex: site.com\/notebook\/); true = subdom\u00ednios (ex: notebook.site.com)\r\ndefine('DOMAIN_CURRENT_SITE', 'www.portanova.com.br'); \/\/ Dom\u00ednio principal da rede\r\ndefine('PATH_CURRENT_SITE', '\/');      \/\/ Caminho da raiz da rede\r\ndefine('SITE_ID_CURRENT_SITE', 1);     \/\/ ID do site principal na rede\r\ndefine('BLOG_ID_CURRENT_SITE', 1);     \/\/ ID do blog principal (sin\u00f4nimo de SITE_ID)\r\n<\/code><\/pre>\n<h4>\ud83e\udde0 Explica\u00e7\u00e3o de cada constante<\/h4>\n<ul>\n<li><code>WP_ALLOW_MULTISITE<\/code> \u2192 <strong>Necess\u00e1ria antes da instala\u00e7\u00e3o<\/strong>. Sem ela, o WordPress n\u00e3o exibe as op\u00e7\u00f5es de rede. Depois que a rede \u00e9 criada, voc\u00ea pode mant\u00ea-la ou remov\u00ea-la (mas \u00e9 seguro manter).<\/li>\n<li><code>MULTISITE<\/code> \u2192 Indica que o WordPress est\u00e1 rodando em modo rede. \u00c9 gerada automaticamente ap\u00f3s a instala\u00e7\u00e3o.<\/li>\n<li><code>SUBDOMAIN_INSTALL<\/code> \u2192 Define a estrutura de URLs. <code>false<\/code> = subdiret\u00f3rios (ex: <code>portanova.com.br\/notebook\/<\/code>). <code>true<\/code> = subdom\u00ednios (ex: <code>notebook.portanova.com.br<\/code>).<\/li>\n<li><code>DOMAIN_CURRENT_SITE<\/code> \u2192 Dom\u00ednio principal da rede (com ou sem <code>www<\/code>). Todos os sub-sites herdam esse dom\u00ednio.<\/li>\n<li><code>PATH_CURRENT_SITE<\/code> \u2192 Caminho raiz da rede. Geralmente <code>'\/'<\/code>.<\/li>\n<li><code>SITE_ID_CURRENT_SITE<\/code> e <code>BLOG_ID_CURRENT_SITE<\/code> \u2192 Identificadores do site principal (geralmente <code>1<\/code>).<\/li>\n<\/ul>\n<p><strong>\ud83d\udccc Nota para sites normais (single site):<\/strong> Em uma instala\u00e7\u00e3o comum do WordPress, <strong>nenhuma dessas constantes deve estar presente<\/strong>. Se voc\u00ea adicionar <code>WP_ALLOW_MULTISITE<\/code> ou <code>MULTISITE<\/code> em um site single, poder\u00e1 causar erros ou comportamentos inesperados.<\/p>\n<hr \/>\n<h3>\u2699\ufe0f Configura\u00e7\u00f5es customizadas reais do <code>portanova.com.br<\/code><\/h3>\n<p>Abaixo est\u00e3o as configura\u00e7\u00f5es adicionais que usamos no nosso Multisite, incluindo ajustes de desempenho, seguran\u00e7a e compatibilidade com plugins.<\/p>\n<h4>\ud83d\udd27 Debug (ambiente de desenvolvimento)<\/h4>\n<pre><code>define('WP_DEBUG', true);          \/\/ Ativa exibi\u00e7\u00e3o de erros\r\ndefine('WP_DEBUG_LOG', true);      \/\/ Salva erros em \/wp-content\/debug.log\r\ndefine('WP_DEBUG_DISPLAY', false); \/\/ N\u00e3o mostra erros na tela\r\n@ini_set('display_errors', 0);     \/\/ For\u00e7a oculta\u00e7\u00e3o de erros<\/code><\/pre>\n<h4>\ud83d\udd27 Cron (tarefas agendadas)<\/h4>\n<pre><code>define('DISABLE_WP_CRON', true);   \/\/ Desativa o cron nativo (usamos cron do servidor)<\/code><\/pre>\n<h4>\ud83d\udd27 Seguran\u00e7a e performance<\/h4>\n<pre><code>define('WPCOM_API_KEY', '983e0f6c595e');     \/\/ Chave da API Akismet\r\ndefine('WP_MEMORY_LIMIT', '512M');           \/\/ Aumenta a mem\u00f3ria do PHP\r\ndefine('WPSC_READABLE_WARNING', false);     \/\/ Remove aviso do WP Super Cache<\/code><\/pre>\n<h4>\ud83d\udd27 Query Monitor (desativado no Elementor)<\/h4>\n<pre><code>if ( isset( $_GET['action'] ) &amp;&amp; $_GET['action'] === 'elementor' ) {\r\n    define('QM_DISABLED', true);            \/\/ Desliga o Query Monitor ao editar com Elementor\r\n}<\/code><\/pre>\n<h4>\ud83d\udd27 Outras constantes usadas (opcionais)<\/h4>\n<pre><code>\/\/ define('WP_ALLOW_MULTISITE', true);  \/\/ j\u00e1 est\u00e1 na se\u00e7\u00e3o Multisite\r\n\/\/ define('MULTISITE', true);          \/\/ j\u00e1 est\u00e1 na se\u00e7\u00e3o Multisite\r\n\/\/ define('WP_MEMORY_LIMIT', '256M');  \/\/ valor menor, se necess\u00e1rio<\/code><\/pre>\n<hr \/>\n<h3>\ud83e\uddea Como fica a se\u00e7\u00e3o customizada no <code>wp-config.php<\/code><\/h3>\n<p>No arquivo real do <code>portanova.com.br<\/code>, essas configura\u00e7\u00f5es aparecem organizadas entre os coment\u00e1rios <code>\/* Add any custom values... *\/<\/code> e <code>\/* That's all, stop editing... *\/<\/code>.<\/p>\n<pre><code>\/* Add any custom values between this line and the \"stop editing\" line. *\/\r\n\r\n\/\/ 1. ATIVA\u00c7\u00c3O DO MULTISITE (PR\u00c9-INSTALA\u00c7\u00c3O)\r\ndefine('WP_ALLOW_MULTISITE', true);\r\n\r\n\/\/ 2. CONFIGURA\u00c7\u00d5ES DA REDE (GERADAS PELO WORDPRESS)\r\ndefine('MULTISITE', true);\r\ndefine('SUBDOMAIN_INSTALL', false);\r\ndefine('DOMAIN_CURRENT_SITE', 'www.portanova.com.br');\r\ndefine('PATH_CURRENT_SITE', '\/');\r\ndefine('SITE_ID_CURRENT_SITE', 1);\r\ndefine('BLOG_ID_CURRENT_SITE', 1);\r\n\r\n\/\/ 3. CRON E CACHE\r\ndefine('DISABLE_WP_CRON', true);\r\ndefine('WPSC_READABLE_WARNING', false);\r\n\r\n\/\/ 4. AKISMET\r\ndefine('WPCOM_API_KEY', '983e0f6c595e');\r\n\r\n\/\/ 5. MEM\u00d3RIA\r\ndefine('WP_MEMORY_LIMIT', '512M');\r\n\r\n\/\/ 6. DEBUG (ATIVO APENAS EM DESENVOLVIMENTO)\r\ndefine('WP_DEBUG', true);\r\ndefine('WP_DEBUG_LOG', true);\r\ndefine('WP_DEBUG_DISPLAY', false);\r\n@ini_set('display_errors', 0);\r\n\r\n\/\/ 7. QUERY MONITOR (DESATIVADO NO ELEMENTOR)\r\nif ( isset( $_GET['action'] ) &amp;&amp; $_GET['action'] === 'elementor' ) {\r\n    define( 'QM_DISABLED', true );\r\n}\r\n\r\n\/* That's all, stop editing! Happy publishing. *\/\r\n<\/code><\/pre>\n<hr \/>\n<h3>\u2705 Resumo para o caderno de estudos<\/h3>\n<ul>\n<li><strong>Site normal (single site):<\/strong> Nenhuma constante de Multisite presente.<\/li>\n<li><strong>Multisite:<\/strong> Obrigat\u00f3rio definir <code>WP_ALLOW_MULTISITE<\/code> e depois incluir as constantes geradas (<code>MULTISITE<\/code>, <code>SUBDOMAIN_INSTALL<\/code>, etc.).<\/li>\n<li><strong>Configura\u00e7\u00f5es customizadas:<\/strong> Use a se\u00e7\u00e3o entre os coment\u00e1rios indicados para adicionar constantes sem bagun\u00e7ar o resto do arquivo.<\/li>\n<li><strong>Cuidado:<\/strong> Nunca remova as constantes geradas automaticamente ap\u00f3s a instala\u00e7\u00e3o da rede, pois isso quebra o Multisite.<\/li>\n<\/ul>\n<p>Com esta aula, voc\u00ea j\u00e1 consegue diferenciar um arquivo <code>wp-config.php<\/code> de um site normal de um Multisite e tamb\u00e9m sabe customizar seu pr\u00f3prio arquivo de forma segura.<\/p>\n<p><strong>Pr\u00f3ximo passo:<\/strong> (opcional) podemos criar uma terceira parte explicando como migrar um site normal para Multisite ou como adicionar outras constantes \u00fateis (como <code>WP_SITEURL<\/code>, <code>WP_HOME<\/code>, <code>COOKIE_DOMAIN<\/code> etc.).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udcd8 Aula (Parte 2): Configura\u00e7\u00f5es Multisite e customiza\u00e7\u00f5es no wp-config.php No post anterior, explicamos a estrutura b\u00e1sica do arquivo wp-config.php. Agora vamos nos aprofundar nas configura\u00e7\u00f5es exclusivas para Multisite e nas customiza\u00e7\u00f5es reais que usamos no portanova.com.br. Importante: As constantes mostradas aqui s\u00f3 devem ser usadas em uma rede Multisite. Em um site WordPress normal [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,3],"tags":[],"class_list":["post-471","post","type-post","status-publish","format-standard","hentry","category-lessons","category-wordpress"],"_links":{"self":[{"href":"https:\/\/www.portanova.com.br\/notebook\/wp-json\/wp\/v2\/posts\/471","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.portanova.com.br\/notebook\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.portanova.com.br\/notebook\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.portanova.com.br\/notebook\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.portanova.com.br\/notebook\/wp-json\/wp\/v2\/comments?post=471"}],"version-history":[{"count":1,"href":"https:\/\/www.portanova.com.br\/notebook\/wp-json\/wp\/v2\/posts\/471\/revisions"}],"predecessor-version":[{"id":715,"href":"https:\/\/www.portanova.com.br\/notebook\/wp-json\/wp\/v2\/posts\/471\/revisions\/715"}],"wp:attachment":[{"href":"https:\/\/www.portanova.com.br\/notebook\/wp-json\/wp\/v2\/media?parent=471"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.portanova.com.br\/notebook\/wp-json\/wp\/v2\/categories?post=471"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.portanova.com.br\/notebook\/wp-json\/wp\/v2\/tags?post=471"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}