Articles

Truques de Configuração do WordPress

Muitos usuários de WordPress conhecem o arquivo wp-config.php como a chave para o banco de dados do WordPress. É onde você define o nome, nome de usuário, senha e localização do banco de dados (entre outras coisas como chaves de segurança, prefixo do banco de dados e idioma localizado).

Aqui está uma imagem de tela de wp-config.php (também conhecido como o arquivo de configuração do WordPress) para aqueles que ainda não estão familiarizados:

The WordPress Configuration File, wp-config.phpO arquivo wp-config.O arquivo php contém as informações necessárias para que o WordPress se conecte ao banco de dados

Mas o que muitos usuários não sabem é que o arquivo wp-config.php pode ser usado para especificar uma grande variedade de configurações, permitindo que você melhore a funcionalidade, desempenho e segurança do seu site alimentado pelo WordPress. Neste artigo, eu compartilho todos esses truques de configuração que tenho sido capaz de coletar ao longo dos anos. Este guia cobre tudo no Codex WordPress, assim como alguns truques adicionais que você provavelmente nunca viu antes. Se você conhece algum outro truque de configuração do WordPress, compartilhe-os nos comentários e eu os adicionarei ao post.

Update! Confira o artigo de acompanhamento para mais truques de configuração do WordPress “

Credenciais de banco de dados *

Este conjunto de quatro definições de configuração é necessário para que o WordPress se conecte ao banco de dados:

define('DB_NAME', 'database-name');define('DB_USER', 'database-username');define('DB_PASSWORD', 'database-password');define('DB_HOST', 'localhost');

Nome do banco de dados, nome de usuário e senha devem estar prontamente disponíveis para você durante a criação do banco de dados, mas o valor DB_HOST pode ser mais difícil de adquirir. Mais comumente, este valor é simplesmente “localhost“, mas se isso não funcionar, aqui estão alguns outros valores para tentar:

  • Alojamento 1 e 1 – db12345678
  • DreamHost – mysql.example.com
  • GoDaddy – h41mysql52.secureserver.net
  • ICDSoft – localhost:/tmp/mysql5.sock
  • MediaTemple (GS) – internal-db.s44441.gridserver.com
  • Par Redes – dbnnnx.pair.com
  • Yahoo – mysql

Você pode até especificar uma porta alternativa para o seu servidor de banco de dados. Aqui estão dois exemplos:

define('DB_HOST', 'localhost:1234');
define('DB_HOST', 'mysql.domain.tld:1234');

Outro truque legal é detectar automaticamente o valor do servidor de banco de dados:

define('DB_HOST', $_ENV{DATABASE_SERVER});

Se todos estes falharem, ou se você ainda estiver tendo problemas, consulte o seu provedor de hospedagem para assistência.

Configuração e agrupamento de caracteres do banco de dados *

Como da versão 2.2 do WordPress, você pode especificar um conjunto de caracteres para suas tabelas de banco de dados MySQL. Geralmente, não há razão para alterar o valor padrão do conjunto de caracteres UTF-8, que normalmente é perfeito porque suporta todas as línguas. Aqui está a configuração padrão (e recomendada):

define('DB_CHARSET', 'utf8');

WordPress versão 2.2 também permite que você especifique o agrupamento, que é a ordem de ordenação do seu conjunto de caracteres do banco de dados. Definir o agrupamento é geralmente tratado automaticamente pelo MySQL de acordo com o conjunto de caracteres, que é habilitado deixando o valor do agrupamento em branco como feito na configuração padrão para esta definição. Aqui está a configuração padrão (e recomendada):

define('DB_COLLATE', '');
Note: use essas duas definições somente se elas já existirem no seu arquivo.wp-config.php

Security Keys *

As do WordPress 2.7, há quatro chaves de segurança disponíveis que são projetadas para assegurar uma melhor criptografia de cookies. Estas chaves funcionam silenciosamente em segundo plano e devem ser tão aleatórias e complicadas quanto possível (não, você nunca precisará se lembrar delas). A maneira mais fácil de gerar estas chaves é fazê-lo automaticamente no serviço de chaves secretas do WordPress.org. Basta visitar esse link e copiar/colar os resultados no seu arquivo wp-config.php. Note que essas chaves podem ser alteradas a qualquer momento, e fazendo isso invalidará todos os cookies existentes de seus usuários para que eles tenham que fazer login novamente em seu site.

define('AUTH_KEY', ':dr+%/5V4sAUG-gg%aS*v;&xGhd%{YV)p:Qi?jXLq,<h\`39');define('SECURE_AUTH_KEY', '@*+S=8\"\'+\"}]<m#+}V)p:Qi?jXLq,<h\`39m_(');define('LOGGED_IN_KEY', 'S~AACm4h1;T^\"qW3_8Zv!Ji=y|)~5i63JI |Al.'/path/to/wordpress');define('WP_SITEURL', 'http://'.$_SERVER.'/path/to/wordpress');

Provavelmente o melhor é escapar desses valores se estiver usando em um site público.

Template Path and Stylesheet Path

Como com as constantes predefinidas para o endereço do blog e endereço do site (ver secção anterior), também pode aumentar o desempenho eliminando as consultas à base de dados para o caminho do template e caminho da folha de estilo do seu site. Aqui estão os valores padrão para estas duas definições:

define('TEMPLATEPATH', get_template_directory());define('STYLESHEETPATH', get_stylesheet_directory());

As is, estas duas definições ainda estão consultando o banco de dados, mas podemos eliminar estas consultas externas através da codificação dos valores no local:

define('TEMPLATEPATH', '/absolute/path/to/wp-content/themes/active-theme');define('STYLESHEETPATH', '/absolute/path/to/wp-content/themes/active-theme');

Disable Cache and Cache Expiration

Estas duas opções se aplicam a versões mais antigas do WordPress que ainda estão usando o mecanismo de cache baseado em objetos padrão. A primeira definição permite ativar ou desativar o cache, enquanto a segunda definição permite especificar o tempo de expiração do cache.

Ativar o cache

define('WP_CACHE', true); // enable the cachedefine('ENABLE_CACHE', true); // enable the cachedefine('CACHE_EXPIRATION_TIME', 3600); // in seconds

Desativar o cache

define('WP_CACHE', false); // disable the cachedefine('DISABLE_CACHE', true); // disable the cache

Specify Cookie Domain

Existem várias razões pelas quais você deseja especificar um domínio cookie para o seu site. Um exemplo comum envolve evitar que cookies sejam enviados com pedidos de conteúdo estático em subdomínios. Neste caso, você usaria esta definição para dizer ao WordPress para enviar cookies apenas para o seu domínio não estático. Isto poderia ser um aumento de desempenho significativo. Aqui estão alguns exemplos de definição de vários caminhos de cookies e informações de domínio de cookies:

define('COOKIE_DOMAIN', '.digwp.com'); // don't omit the leading '.'define('COOKIEPATH', preg_replace('|https?://+|i', '', get_option('home').'/'));define('SITECOOKIEPATH', preg_replace('|https?://+|i', '', get_option('siteurl').'/'));define('PLUGINS_COOKIE_PATH', preg_replace('|https?://+|i', '', WP_PLUGIN_URL));define('ADMIN_COOKIE_PATH', SITECOOKIEPATH.'wp-admin');

Permissões de arquivo de substituição

Se as permissões de arquivo padrão do seu host web são muito restritivas, adicionar essas definições ao seu arquivo de configuração do WordPress pode ajudar a resolver o problema. Note que você não precisa das aspas em torno dos valores de permissão. Por exemplo:

define('FS_CHMOD_FILE', 0755);define('FS_CHMOD_DIR', 0755);

View All Defined Constants

Need para ver todas as constantes predefinidas? Boas notícias, esta função PHP irá retornar um array de todas as constantes definidas atualmente:

print_r(@get_defined_constants());

Tabelas Personalizadas de Usuário e Usermeta

E que tal tabelas personalizadas de usuário e usermeta? Sim, você pode fazer isso também, com as seguintes definições:

define('CUSTOM_USER_TABLE', $table_prefix.'my_users');define('CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta');

Constantes FTP/SSH

Este conjunto de definições configuracionais foi projetado para ajudar os usuários a localizar e utilizar conexões FTP/SSH. Aqui está um conjunto de constantes pré-definidas para atualizações FTP/SSH:

define('FS_METHOD', 'ftpext'); // forces the filesystem method: "direct", "ssh", "ftpext", or "ftpsockets"define('FTP_BASE', '/path/to/wordpress/'); // absolute path to root installation directorydefine('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/'); // absolute path to "wp-content" directorydefine('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/'); // absolute path to "wp-plugins" directorydefine('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub'); // absolute path to your SSH public keydefine('FTP_PRIVKEY', '/home/username/.ssh/id_rsa'); // absolute path to your SSH private keydefine('FTP_USER', 'username'); // either your FTP or SSH usernamedefine('FTP_PASS', 'password'); // password for FTP_USER usernamedefine('FTP_HOST', 'ftp.domain.tld:21'); // hostname:port combo for your SSH/FTP server

Movendo seu diretório de conteúdo wp

Como da versão 2.6 do WordPress, você pode alterar a localização padrão do diretório wp-content. Há várias boas razões para fazer isso, incluindo o aumento da segurança do site e a facilitação de atualizações FTP. Alguns exemplos:

// full local path of current directory (no trailing slash)define('WP_CONTENT_DIR', $_SERVER.'/path/wp-content'); // full URI of current directory (no trailing slash)define('WP_CONTENT_URL', 'http://domain.tld/path/wp-content');

Você também pode especificar um caminho personalizado para o seu diretório plugins. Isto pode ajudar com problemas de compatibilidade com certos plugins:

// full local path of current directory (no trailing slash)define('WP_PLUGIN_DIR', $_SERVER.'/path/wp-content/plugins'); // full URI of current directory (no trailing slash)define('WP_PLUGIN_URL', 'http://domain.tld/path/wp-content/plugins');

Tratando com Revisões de Posts

Versões recentes do WordPress fornece um sistema de pós-revisão que permite aos usuários salvar diferentes versões de seus posts no blog e até mesmo reverter para versões previamente salvas, se necessário. Independentemente do quanto você faça ou não despreze este incrível recurso, aqui estão algumas definições de configuração que podem ser úteis para você 😉

Limite o número de revisões salvas

define('WP_POST_REVISIONS', 3); // any integer, but don't get too crazy

Desabilite o recurso de pós-revisão

define('WP_POST_REVISIONS', false);

Especifique o Intervalo de Salvamento automático

Em uma veia similar à do recurso de pós-revisão está a funcionalidade de Salvamento automático do WordPress, realmente útil. Por padrão, o WordPress salva seu trabalho a cada 60 segundos, mas você pode modificar totalmente essa configuração para o que você quiser. Mas não fique muito louco, a não ser que você queira estressar o seu servidor 😉

define('AUTOSAVE_INTERVAL', 160); // in seconds

Debugging WordPress

Desde a versão 2.3.1 do WordPress, os usuários têm sido capazes de exibir certos erros e avisos para ajudar na depuração do seu site. A partir da versão 2.5 do WordPress, habilitar o relatório de erros aumenta o nível de relatório para E_ALL e ativa os avisos para funções depreciadas. Por padrão (isto é, se nenhuma definição for especificada no arquivo wp-config.php), o relatório de erros é desativado.

define('WP_DEBUG', true); // enable debugging modedefine('WP_DEBUG', false); // disable debugging mode (default)

Configuração do registro de erros

Aqui está uma maneira fácil de habilitar o registro básico de erros para o seu site alimentado pelo WordPress. Crie um arquivo chamado “php_error.log“, torne-o gravável no servidor, e coloque-o no diretório de sua escolha. Depois edite o caminho na terceira linha do seguinte código e coloque no seu wp-config.php file:

@ini_set('log_errors','On');@ini_set('display_errors','Off');@ini_set('error_log','/home/path/domain/logs/php_error.log');

Increase PHP Memory

Se estiver a receber mensagens de erro a dizer-lhe que a sua “memória permitida de xxx bytes esgotados”, esta configuração pode ajudar a resolver o problema. AS da versão 2.5 do WordPress, a definição WP_MEMORY_LIMIT permite especificar a quantidade máxima de memória que pode ser usada pelo PHP. Por padrão, o WordPress tentará automaticamente aumentar a memória PHP até 32MB, portanto, esta configuração só é necessária para valores superiores a 32MB. Note que algumas máquinas web desabilitam sua capacidade de aumentar a memória PHP, então você pode precisar implorar para que eles o façam. Aqui estão alguns exemplos:

define('WP_MEMORY_LIMIT', '64M');define('WP_MEMORY_LIMIT', '96M');define('WP_MEMORY_LIMIT', '128M');

Salvar e Exibir Consultas de Banco de Dados para Análise

Esta técnica é perfeita para salvar consultas de banco de dados e exibir as informações para análise subseqüente. O processo salva cada consulta, sua função associada e seu tempo total de execução. Esta informação é gravada como um array e pode ser exibida em qualquer página de modelo de tema. Para fazer isso, primeiro adicione a seguinte diretiva ao seu wp-config.php arquivo:

define('SAVEQUERIES', true);

Então, no rodapé do seu tema ativo, coloque o seguinte código:

// display the query array for admin onlyif (current_user_can('level_10')) {global $wpdb;echo "<pre>";print_r($wpdb->queries);echo "</pre>";}

Aqui está uma versão de uma linha desta função:

<?php if (current_user_can('level_10')) { global $wpdb; echo "<pre>"; print_r($wpdb->queries); echo "</pre>"; } ?>

Controle o Acesso Proxy

Desde WordPress 2.8, o arquivo de configuração pode ser usado para definir constantes envolvidas no bloqueio, permitindo e filtrando o acesso a hosts específicos a partir de um servidor proxy. Por exemplo, se você hospedar seu site WordPress em uma rede intranet, você pode impedir o acesso a todos os hosts externos e só permitir solicitações do localhost e do seu blog usando a primeira definição abaixo. Você também pode permitir o acesso a hosts específicos com uma lista separada por vírgulas de nomes de hosts permitidos, como demonstrado na terceira definição abaixo.

define('WP_HTTP_BLOCK_EXTERNAL', true); // block external requestsdefine('WP_HTTP_BLOCK_EXTERNAL', false); // allow external requestsdefine('WP_ACCESSIBLE_HOSTS', 'api.wordpress.org'); // whitelist hosts
Nota que você deve permitir api.wordpress.org acesso para garantir a funcionalidade adequada dos arquivos centrais e plugins.

Whew! Estou apagado. Tempo para um pequeno intervalo 🙂

Notas

  • * Indica que o código está incluído no padrão wp-config.php arquivo
  • Tradução para o português do Brasil (por Tárcio Zemel)