Arquivo do autor:Leo Germani

WordPress 2.8.2 versão pt_BR e dica de atualização

Pouquíssimo tempo depois de lançada a versão 2.8.1, a versão 2.8.2 já está disponível para download, também em pt_BR. Esta nova versão foi lançada para corrigir uma pequena falha de segurança (não muito grave, mas irritante) no sistema de comentários do WordPress.
Se você acabou de fazer o upgrade para 2.8.1 e já está com preguiça de fazer todo o processo de upgrade novamente, aqui vai uma dica para facilitar sua vida. Como esta versão tem poucas diferenças em relação à anterior, não é preciso substituir todos os arquivos do site, apenas alguns. Eis os arquivos que foram modificados na versão 2.8.2:

readme.html
wp-admin/comment.php
wp-admin/edit-form-comment.php
wp-admin/includes/comment.php
wp-admin/includes/template.php
wp-content/plugins/akismet/akismet.php
wp-content/plugins/akismet/readme.txt
wp-includes/comment-template.php
wp-includes/default-widgets.php
wp-includes/version.php

Substitua esses arquivos e você terá um WordPress novo em folha! Se estiver usando a versão pt_BR, além desses arquivos basta substituir os arquivos de tradução pt_BR.po e pt_BR.mo na pasta wp-content/languages.

Definido o local do WordCamp

O primeiro WordCamp Brasil já tem uma casa. O evento será na sede da FUNARTE em São Paulo, na Alameda Nothman 1058, região central de São Paulo, próximo a estação Marechal Deodoro do metrô.

O local é de fácil acesso, aproximadamente 5 minutos a pé do metrô, tem salas confortáveis para as palestras e um amplo espaço de convivência. Veja o mapa.

Gostaríamos de agradecer também a todas as pessoas que se mobilizaram para encontrar um bom lugar para o evento, assim como aquelas que ofereceram espaço. Muito obrigado!

Como chamar arquivos css ou js no seu tema ou plugin

Ilustração por Cátia Kitahara

Ilustração por Cátia Kitahara

Muitas vezes, quando fazemos um tema ou um plugin, precisamos carregar folhas de estilo ou arquivos javascript adicionais. Neste post, vou mostrar a maneira mais legal, charmosa e elegante de se fazer isso.

Estrutura básica

Antes de mais nada, vamos criar a função que vai carregar nosso javascript e adicioná-la ao hook correto do WordPress:

[sourcecode language='php']
function meuPlugin_addJS() {
// aqui vou carregar meu javascript
}

add_action(wp_print_scripts, meuPlugin_addJS);
[/sourcecode]

Agora, sempre que o WordPress imprimir as chamadas a arquivos javascript, vai rodar a sua função. Vamos ver como isso vai funcionar.

Usando a função wp_enqueue_script

A função wp_enqueue_script() serve para colocar o script em uma fila de carregamento. Ela é extremamente útil para evitar que um script seja carregado mais de uma vez e também para carregar todas as dependências na ordem certa. Vamos ver um exemplo que usa todos os parâmetros desta função:

[sourcecode language='php']
wp_enqueue_script(meu_script, http://meusite.com/wp-content/plugins/meuplugin/script.js, array(jquery), 1.0);
[/sourcecode]

Esta função está colocando o seu script na fila para ser carregado, dizendo o seguinte

  • ele se chama meu_script
  • ele está em http://meusite.com/wp-content/plugins/meuplugin/script.js
  • ele depende do jquery
  • esta é a versão 1.0 do meu_script

Você só precisa passar tantos parâmetros quando se trata de um script que o WordPress não conhece. Para carregar o jQuery, por exemplo, você pode simplesmente especificar:

[sourcecode language='php']
wp_enqueue_script(jquery);
[/sourcecode]

Note que jquery é apenas um nome fantasia para o script. Para saber quais são todos os scripts disponíveis por padrão no WordPress, dê uma olhada na documentação completa da função wp_enqueue_script().

Deixando seu caminho flexível

Para encerrar este post, só falta esclarecer um ponto: não é bonito colocar o caminho para seu arquivo assim na mão, como fizemos no exemplo acima. Isso pode trazer vários problemas, porque, a partir do WordPress 2.6, é possível trocar o diretório wp-content de lugar. Seu plugin ou tema não vai funcionar corretamente em uma instalação em que alguém tenha movido este diretório. Além disso, não é raro as pessoas trocarem o nome da pasta do plugin, o que também quebraria o seu esquema.

Para contornar esse problema e deixar o seu código universal, vamos usar a constante WP_CONTENT_URL, que guarda o caminho da pasta wp-content, onde quer que ela esteja.

Vamos ver como ficaria nosso script completo:

[sourcecode language='php']
function meuPlugin_addJS() {
$meuPluginURL = WP_CONTENT_URL./plugins/.plugin_basename( dirname(__FILE__))./';
wp_enqueue_script(meuJs, $meuPluginURL . meuJS.js);
}

add_action(wp_print_scripts, meuPlugin_addJS);
[/sourcecode]
Note que, se meu plugin não depende de ninguém, não preciso passar os dois últimos parâmetros.

Importante: A constante WP_CONTENT_URL só foi introduzida no WordPress 2.6, portanto, se você quiser que seu plugin ou tema funcione em versões anteriores a esta, adicione uma linha para criar a constante, caso ainda não exista:
[sourcecode language='php']
if ( !defined(WP_CONTENT_URL) )
define( WP_CONTENT_URL, get_option(siteurl) . /wp-content);
[/sourcecode]

Mas e nos temas?

Nos temas, você pode fazer assim:
[sourcecode language='php']
// para garantir compatibilidade com versões anteriores ao WordPress 2.6
if ( !defined(WP_CONTENT_URL) )
define( WP_CONTENT_URL, get_option(siteurl) . /wp-content);

function meuTema_addJS() {
wp_enqueue_script(meuJs, WP_CONTENT_URL./themes/meuTema/ . meuJS.js);
}

function meuTema_addCSS() {
echo ;
}

add_action(wp_print_scripts, meuPlugin_addJS);
add_action(wp_head, meuTema_addCSS);
[/sourcecode]

Próximos passos

Seu próximo passo é garantir que esses arquivos externos sejam carregados apenas quando realmente forem usados, para não sobrecarregar o site à toa. Existem várias maneiras de fazer isso, usando hooks específicos ou condições, mas é tema para outro post.

Abraços,

Leo