Logotipo desenvolvimento para web

Truques de configuração do WordPress

Existem pequenas diretivas que você pode alterar/acrescentar no arquivo wp-config para que seu WordPress tenha um nível de personalização diferenciado e você aproveite melhor o que a plataforma tem a oferecer. Leia este artigo e aprenda incríveis truques de configuração para aumentar a performance de sua instalação e ter um WordPress refinado.

Este é um artigo traduzido do original “WordPress Configuration Tricks“, do blog Digging into Wordpress. A tradução foi feita com autorização dos autores, Chris Coyier e Jeff Starr, e sofreu pequenas adaptações.

Muitas pessoas que usam WordPress sabem que o arquivo wp-config.php é o arquivo-chave para as configurações de banco de dados. É nele que você define o nome do banco de dados, nome de usuário, senha e localização. Mas o que muitos não sabem é que o wp-config.php pode ser usado para especificar uma grande variedade de outras configurações; configurações essas que permitem melhorar as funcionalidades, desempenho e segurança do seu WordPress.

As dicas a seguir abordam o que consta sobre o assunto no WordPress Codex, bem como alguns truques que provavelmente você não viu antes. Se você souber de qualquer outra configuração, comente que eu acrescento ao artigo. ;-)

Endereço do Blog e Endereço do Site

Por padrão, essas duas constantes de configuração não estão incluídas no wp-config.php, mas eles devem ser adicionados para melhorar o desempenho. Estas duas definições foram introduzidas no WordPress 2.2 e servem para substituir os respectivos valores do banco de dados sem alterá-los, efetivamente.

A adição dessas constantes reduz o número de consultas ao banco de dados e, consequentemente, melhora o desempenho do site. Essas configurações devem coincidir com as especificadas no painel do WordPress (Configurações > Geral). Segue um exemplo (não inclua a barra no final da URL):

define('WP_HOME', 'http://digwp.com');
define('WP_SITEURL', 'http://digwp.com');

Um truque legal é definir esses valores dinamicamente usando a variável global do servidor:

define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/path/to/wordpress');
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/path/to/wordpress');

“Template Path” e “Stylesheet Path”

Assim como o Endereço do Blog e Endereço do Site mostrados anteriormente, você também pode aumentar o desempenho do site eliminando as consultas ao BD para o “Template Path” e “Stylesheet Path” (que são, respectivamente, o caminho para o tema e o caminho para o estilo CSS). Aqui estão os valores padrão para essas duas definições:

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

Com isso, ainda há consultas ao banco de dados, mas é possível eliminar essas duas queries e colocar o caminho absoluto:

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

Desabilitar Cache e Expiração de Cache

Essas duas opções se aplicam a versões mais antigas do WordPress que ainda estão usando o esquema antigo de cache. A primeira permite habilitar ou desabilitar o cache, enquanto a segunda permite especificar o tempo de expiração de cache.

Habilitar o cache:

define('WP_CACHE', true); // habilita o cache
define('ENABLE_CACHE', true); // habilita o cache
define('CACHE_EXPIRATION_TIME', 3600); // em segundos

Desabilitar o cache:

define('WP_CACHE', false); // desabilita o cache
define('DISABLE_CACHE', true); // desabilita o cache

Especificar Domínio de Cookie (Cookie Domain)

Existem várias razões para especificar um domínio de cookie para o seu web site. Um exemplo comum envolve impedir que cookies sejam enviados com requisições de conteúdo estático em subdomínios. Neste caso, pode-se utilizar esta constante para dizer para o WordPress enviar cookies apenas para o seu domínio não-estático. Este poderia ser um ganho significativo de performance. Aqui estão alguns exemplos de definição de cookie domain:

define('COOKIE_DOMAIN', '.digwp.com'); // não omitir o '.'
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');

Substituir Permissões de Arquivo

Se as permissões do seu servidor são muito restritivas, inserir essas definições no seu arquivo de configuração do WordPress pode ajudar a resolver alguns problemas. Lembrando que não precisa colcoar aspas nos valores.

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

FTP/SSH

Essas constantes são para ajudar usuários a localizar e utilizar conexões FTP/SSH. Exemplos:

define('FS_METHOD', 'ftpext'); // força o método de sistema de arquivos : "direct", "ssh", "ftpext", or "ftpsockets"
define('FTP_BASE', '/path/to/wordpress/'); // caminho absoluto para a pasta raiz (de instalação)
define('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/'); // caminho absoluto para a pasta "wp-content"
define('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/'); // caminho absoluto para a pasta "wp-plugins"
define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub'); // caminho absoluto para a pasta sua chave-pública SSH
define('FTP_PRIVKEY', '/home/username/.ssh/id_rsa'); // caminho absoluto para a pasta sua chave-privada SSH
define('FTP_USER', 'username'); // seu usuário de FTP ou SSH
define('FTP_PASS', 'password'); // senha do usuário especificado em FTP_USER
define('FTP_HOST', 'ftp.domain.tld:21'); // hostname (com especificação de porta) para o servidor SSH/FTP

Alterar a localização de “wp-content”

Desde a versão 2.6 do WordPress é possível alterar o local padrão da pasta wp-content. Há boas razões para fazer isso, incluindo o reforço da segurança das instalações e facilitação de atualizações via FTP. Aqui estão alguns exemplos:

// caminho completo para o diretório atual (sem a barra final)
define('WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/path/wp-content'); 
 
// URI completa para o diretório atual (sem a barra final)
define('WP_CONTENT_URL', 'http://domain.tld/path/wp-content');

Você também pode especificar um caminho personalizado para o wp-content. Isso pode ajudar com problemas de compatibilidade com certos plugins.

// caminho completo para o diretório atual (sem a barra final)
define('WP_PLUGIN_DIR', $_SERVER['DOCUMENT_ROOT'] . '/path/wp-content/plugins'); 
 
// URI completa para o diretório atual (sem a barra final)
define('WP_PLUGIN_URL', 'http://domain.tld/path/wp-content/plugins');

Revisões de Artigos (“Post Revisions”)

Já há algum tempo o WordPress fornecem um sistema de versões que permite aos utilizadores guardar versões diferentes de seus posts e até reverter para versões salvas anteriormente se necessário. Aqui estão algumas das definições de configurações que podem ser úteis.

Definir o número de versões salvas:

define('WP_POST_REVISIONS', 3);

Desabilitar a revisão de posts (se não for usar o recurso, utilize essa diretiva para poupar espaço no BD):

define('WP_POST_REVISIONS', false);

Tempo de Salvar Automaticamente (“Autosave”)

Assim como o controle de versões, o autosave é um recurso muito útil existente. Por padrão, o WordPress salva seu trabalho a cada 60 segundos, mas você pode modificar esta definição para o tempo que quiser. Cuidado com o que vai colocar para não “estressar” seu servidor!

define('AUTOSAVE_INTERVAL', 160); // em segundos

Debugging

Desde a versão 2.3.1 os usuários tem a opção de mostrar alguns erros e avisos para ajudar com a depuração do site. Desde a versão 2.5 do WordPress é possível elevar o nível de informação para E_ALL para ativar avisos para funções obsoletas. Por padrão (ou seja, se nenhuma definição é especificado no wp-config.php) o relatório de erros está desativado.

define('WP_DEBUG', true); // habilitar debugging mode
define('WP_DEBUG', false); // desabilitar debugging mode (padrão)

Relatório de Erros

Aqui está uma maneira fácil de habilitar um relatório básico de erros no WordPress. Crie um arquivo chamado php_error.log em uma pasta de sua escolhe e coloque permissão de escrita no arquivo (leia mais sobre permissões de arquivos). Em seguida, edite o caminho na terceira linha do código a seguir e coloque no seu “wp-config.php”:

@ini_set('log_errors','On');
@ini_set('display_errors','Off');
@ini_set('error_log','/home/path/domain/logs/php_error.log'); // complemento: http://br.php.net/getcwd

Aumentar memória do PHP

Se você estiver recebendo mensagens de erro como “Tamanho de memória permitido de X bytes esgotado”, esta dica pode ajudar a resolver o problema.

Desde o WordPress versão 2.5, a constante WP_MEMORY_LIMIT permite que você especifique a quantidade máxima de memória que pode ser usada pelo PHP. Por padrão, o WordPress irá automaticamente tentar alocar 32 MB – então você só vai precisar isso se quiser valores superiores a 32MB. Observe que alguns planos de hospedagem desativam sua capacidade de aumentar a memória do PHP; se for seu caso, você precisa pedir que eles aumente a memória pra você. Aqui estão alguns exemplos:

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

Salvar e exibir Queries do Banco de Dados para Análise

Esta técnica é perfeita para guardar as consultas de banco de dados e exibir as informações para análise posterior. O processo armazena cada consulta, sua função associada e seu tempo total de execução. Esta informação é guardada como um array e pode ser exibida em qualquer página do tema. Para fazer isso, primeiro adicione a seguinte diretiva no seu wp-config.php:

define('SAVEQUERIES', true);

Em seguida, no rodapé do tema ativo, coloque o seguinte:

if (current_user_can('level_10')) // se for administrador
{
    global $wpdb;
    print_r($wpdb->queries);
}

Controle de Acesso ao Proxy

Desde o WordPress 2.8 o arquivo de configuração pode ser usado para definir constantes envolvidas com o bloqueio, filtragem e permição de acesso a máquinas específicas de um servidor proxy. Por exemplo, se você hospedar seu site WordPress em uma intranet, você pode impedir o acesso a todos os hosts externos e só permitir visitas do localhost (usando a primeira definição abaixo).

Você também pode permitir o acesso de máquinas específicas com uma lista separada por vírgulas, uma verdadeira “lista branca” (como demonstrado na definição do terceiro abaixo). Necessariamente deve permitir o acesso de api.wordpress.org para garantir as funcionalidades de arquivos importantes e plugins.

define('WP_HTTP_BLOCK_EXTERNAL', true);  // bloqueia requisições externas
define('WP_HTTP_BLOCK_EXTERNAL', false); // permite requisições externas
define('WP_ACCESSIBLE_HOSTS', 'api.wordpress.org'); // "lista branca" de hosts

Estatísticas sobre comportamento nas mídias sociais

Estatísticas sobre o comportamento nas mídias sociais.

Recentemente foi liberado um relatório da Universal McCann (UM) sobre o comportamento das pessoas nas mídias sociais, oficialmente publicado como “Power to the People – Social Media Tracker Wave 4″. Sua produção se baseou em pesquisas feitas durante novembro de 2008 e março de 2009 com 22.729 pessoas (que usam internet ativamente) em 38 países.

O relatório revelou mudanças dramáticas na maneira em que as pessoas (a palavra usada oficialmente foi “consumidores”…) estão usando a internet para criar e compartilhar seus pensamentos, fotos e vídeos. O Wave 4 da UM tratou sobre os fatos por detrás do hype das mídias sociais e revela que a social media rapidamente se tornará a plataforma dominante para criar e partilhar conteúdos.

Mídias Sociais ao decorrer do tempo

De 2006 para 2009 houve aumento crescente de praticamente todas as atividades envolvendo mídias sociais. As 5 atividades que mais cresceram foram:

  1. Assistir vídeos pela internet;
  2. Escutar músicas/rádios online ao vivo;
  3. Criar perfil em alguma rede social;
  4. Criar blogs, ler e comentar em outros blogs;
  5. Fazer upload de fotos pessoais em algum site de compartilhamento de fotos.

Usuários ativos

Atualmente existem, aproximadamente, 625 milhões de usuários de internet. O “Top 5″ é:

  1. China;
  2. Estados Unidos;
  3. Alemanha;
  4. Brasil;
  5. Japão.

Outros países com expressivo volume de pessoas que usam internet são Corea, Reino Unido, França, Índia e Malásia.

Compartilhamento de vídeo

Como foi citado, uma das atividades que mais cresce é o compartilhamento de vídeos pessoais em “sites especializados”. Sabe qual a porcentagem dos 5 países com mais pessoas que fazem upload de vídeos?

  1. Corea;
  2. Filipinas;
  3. China;
  4. Índia;
  5. México.

O Brasil fica em 6º lugar, com uma porcentagem de 50,06% (uma queda de mais de 18% em relação à última pesquisa feita).

A porcentagem dos 5 países que mais assistem vídeos online:

  1. Filipinas;
  2. China;
  3. Espanha;
  4. Estados Unidos;
  5. Corea.

Neste “quesito” o Brasil não tem porcetagem expressiva…

Redes Sociais

Sabe quais os países que tem maior porcentagem de pessoas que criaram um perfil em alguma rede social?

  1. Rússia;
  2. Reino Unido;
  3. Espanha e Estados Unidos;
  4. França;
  5. Alemanha.

“Criar é fácil; manter é que é difícil”! Os 5 países com mais pessoa que manuteniram seu perfil em redes sociais são:

  1. China;
  2. Estados Unidos;
  3. Brasil;
  4. Reino Unido;
  5. Corea.

Perguntas e Respostas

Foram feitas algumas perguntas aos que participaram da pesquisa para quantificar determinados comportamentos. Confira algumas estatísticas baseadas nas respostas dos participantes.

“Ao escrever em seu blog, quais os principais tópicos abordados?”

Logicamente, a pergunta foi feita a pessoas que tem blog. O resultado foi:

  1. Fotos – 70,48%;
  2. Recomendação de sites – 43,3%;
  3. Quais músicas tem mais escutado e mais frequentemente em sites especializados – 34,3%;
  4. Videos – 31,9%;
  5. Opinião sobre produtos e marcas – 31,7%;

“O que você faz com o seu perfil de rede social?”

Para aqueles que usam alguma Rede Social, as respostas a essa pergunta resultaram em:

  1. Mensagens para amigos – 81,5%;
  2. Upload de fotos – 76,3%;
  3. Encontrar velhos amigos – 74,3%;
  4. Fazer novos amigos – 56,4%;
  5. Entrar em algum grupo/comunidade – 47,9%.

Estatísticas brasileiras

No Wave 4 é possível encontrar estatísticas direcionadas aos principais países que aparecem na pesquisa. Falando especificamente do Brasil, temos alguns dados interessantes:

  • Leitores de blogs: 62%;
  • Escritores de blogs: 51%;
  • Criaram perfil em alguma rede social: 69%;
  • Manuteniram perfil em rede social: 72%;
  • Visitaram página de amigo(s) em rede social: 84%;
  • Assistiram vídeos online: 93%.

Lembrando que estas porcentagens “apareceram” na pesquisa feita e que o resultado é dado com base nas pessoas entrevistadas. Não é para confundir e tomar isso como uma “realidade brasileira absoluta” – com o agravante que a pesquisa nem foi com o foco nacional.

O que fazer com todos esses números?

Na verdade, esse “apanhado geral” que fiz é somente para mostrar algumas informações que julguei interessantes. É altamente recomendável que você leia o relatório oficial: “Wave 4 – Power to the people“. Além de mais estatísticas interessantes, no relatório são apresentados comentários sobre vários dos números apresentados (leia-se: o que significam na prática).

A partir dessa leitura e dedicando um tempo para extrair as informações que são mais importantes para você, certamente é possível encontrar informações preciosas para definir sua estratégia de atuação para algum produto, serviço, alterar sua maneira de “aparecer” nas mídias sociais, modificar seu estilo de blogar, dentre muitas outras coisas.

E então? Você vai mudar algo que faz depois de ter visto estas estatísticas? O quê? Compartilhe com a gente!  ;-)

Jetpack: explorando novas maneiras de ampliar e personalizar a web

Jetpack Mozilla logo

Recentemente saiu no blog oficial da Mozilla no Brasil o anúncio do Jetpack, um projeto da Mozilla Labs para explorar novas formas de estender e personalizar a web! Há tempos quem mexe com desenvolvimento web sabe (e, recentemente, até o “usuário comum”) que os plugins para Firefox contribuíram e contribuem enormemente para o sucesso do Firefox. A Mozilla, obviamente, também sabe disso e, através do projeto Jetpack, promete estender e melhorar, e muito, o modo como os plugins são feitos e usados.

Atualmente existem mais de 12000 plugins para Firefox, feitos por mais de 8000 programadores. São extensões para o navegador que permitem de um tudo, desde funções para melhorar a usabilidade do Firefox, passando por players de música e ripadores de vídeo, até ferramentas direcionadas a nichos mais específicos, como, por exemplo, os indispensáveis Web Developer e Firebug. Mas, como consta no próprio comunicado oficial da Mozilla sobre o Jetpack, o atual sistema de plugins está apenas o começo!

Jetpack e a nova geração de plugins

Jetpack é uma plataforma para desenvolvimento de plugins para Firefox que, paradoxalmente, é uma extensão para Firefox e precisa ser instalada nos moldes “tradicionais”. Depois de instalada, o verdadeiro poder e potencialidade da nova geração de plugins está em suas mãos! Nas palavras da própria equipe Mozilla:

Especificamente, o Jetpack será uma exploração do uso das tecnologias da Web para melhorar o navegador (ex: HTML, CSS e Javascript), permitindo que qualquer um que saiba como fazer um site possa ajudar a tornar a Web um lugar melhor para trabalhar, se comunicar e se divertir.

Com Jetpack é possível desenvolver plugins sabendo somente (X)HTML, CSS e Javascript! É isso, mesmo! Utilizando somente estas tão conhecidas e usadas linguagens de desenvolvedores web, é possível criar, estender, personalizar, complementar e incrementar funções e funcionalidades!

Quer mais? Utilize javascript com o poder de jQuery! É possível escrever javascript utilizando as potencialidades do melhor e mais simples framework javascript da atualidade (e outros, também) para escrever seus plugins com o Jetpack da Mozilla! Quer ainda mais? Instale e use instantaneamente plugins feitos com JetPack sem reiniciar o Firefox!

Algumas das características do Jetpack:

  • “Web-based”
    • HTML, Javascript e CSS são as únicas ferramentas necessárias;
    • Tem o poder de AJAX e capacidades multimídia, incluindo <canvas>, <audio> e <video>;
    • Acessível através de um URL, tal como o resto da web;
    • Pode ser debugado direto no navegador, sem necessidade de reiniciar, usando ferramentas como Firebug.
  • Robusto
    • Trabalha com APIs para que você não tenha que atualizar e revalidar o seu código para cada nova versão do Firefox;
    • Leve, mas com poderosos recursos, permitindo aplicações simples e complexas que aumentam a experiência da web, como os add-ons do Firefox fazem atualmente.
  • Seguro
    • Oferece acesso apenas aos privilégios necessários, com questões de segurança sempre apresentados em termos sociais, e não termos técnicos;
    • Código curto e fácil de rever, que garante que os potenciais problemas de segurança não sejam graves e tempos de revisão curtos.
  • Extensível
    • Sua arquitetura permite a fácil inclusão de revisões (versionamento) e ferramentas de terceiros (por exemplo, jQuery, Dojo, etc) e bibliotecas API (por exemplo, Twitter, Delicious, Google Maps, etc)

Exemplo de funcionamento do Jetpack

Eu poderia realizar alguns exemplos aqui, para demonstrar toda a facilidade de uso do Jetpack. Entretanto, creio que vai ser mais “didático” eu mostrar um dos vídeos oficiais de exemplo.

Como começar com o Jetpack

Para dar os primeiros passos no Jetpack, além do básico, que é saber (X)HTML, CSS e javascript, você deve:

  1. Acessar o site oficial e estudar os códigos dos exemplos de uso no site do Jetpack e na página com os primeiros plugins já disponíveis do Jetpack;
  2. Passar pelo Tutorial Oficial do Jetpack (com o Jetpack instalado no navegador é possível alterar e testar os exemplos em tempo real);
  3. Assinar o feed do desenvolvimento para web, que em breve vai trazer vários scripts para Jetpack!  ;-)

Fique ligado no Jetpack

Esta é somente a primeira versão do Jetpack e, como podemos esperar da Mozilla, muita coisa boa ainda está por vir! O projeto tem tudo para dar certo e, segundo as expectativas, essa é realmente uma grande iniciativa em prol de uma web mais ampla, personalíssima e fácil de usar!

Acompanhe as novidades sobre o Jetpack:

Pronto para a revolução?  :-D

artigos comentários e-mail ?
Siga-me no twitter!