Ambientes de Desenvolvimento

No encontro de 27 de Novembro, apresentei uma solução para ambientes de desenvolvimento com WordPress. Aqui estão os slides e mais algum contexto:

Os ambientes de desenvolvimento normalmente recomendados são:

Desenvolvimento: a cópia local na máquina do programador.

Staging: onde se faz continuous integration e se testa novas funcionalidades. Deve ser o mais parecido possível com o ambiente de produção de maneira a evitar surpresas quando se criam novas versões.

Produção: é o site real, ao vivo, que os utilizadores vêem.


Em cada um destes ambientes existe uma base de dados diferente.

Queres trazer uma cópia do site para desenvolver localmente?

É relativamente fácil. Se estiveres em Linux ou Mac basta pôr no /etc/hosts uma entrada do URL a apontar para o localhost e consegue-se muito facilmente desenvolver localmente.

Queres fazer commit para um servidor de staging?

Aqui é mais complicado porque normalmente o servidor de staging tem um URL diferente e é preciso alterar na base de dados todas as referências que existam do URL. Normalmente as pessoas tentam fazer um search-and-replace e só mais tarde percebem que isso não funciona por causa dos serialized arrays.

Vou explicar o que acontece porque é importante para perceber a solução que eu uso e recomendo. Quando se quer guardar um array na base de dados o WordPress usa a função serialize, que cria um serialized array que é algo desta forma:

s:15:"poll_happypolls"

Aquele 15 é o tamanho da string que se segue. Quando se faz um search-and-replace muda-se a string mas como não se alterou o tamanho os dados ficam corrompidos.

Existem algumas formas de resolver isto 1, algumas mirabolantes 2, mas na minha opinião são muito error-prone e não são algo que queira fazer regularmente.

Uma maneira muito simples de resolver isto é usar um site URL do mesmo tamanho em desenvolvimento, staging e produção. Isso faz com que seja trivial fazer migrações (mudar a base de dados de um sítio para o outro), apenas basta fazer o search-and-replace, o que pode ser facilmente automatizado com um script. Esta é uma solução muito simples e quanto a mim elegante até dada a sua simplicidade.

Gravatars animados no seu site

Esta funcionalidade, já tinha sido anunciada há algum tempo no WordPress.com, mas houve quem não quisesse esperar para implementa-la nos restantes sites WordPress.org. Decidimos experimentar e ver se funcionava aqui também.

É bastante simples, na verdade. Basta inserir estas funções no ficheiro functions.php do vosso tema e já está! Experimente passar com o rato por cima de qualquer Gravatar deste site, para ver o efeito.

<?php
/*
Plugin Name: Gravatar Hovercards
*/
function gravatar_hovercards() {
	wp_enqueue_script( 'gprofiles', 'http://s.gravatar.com/js/gprofiles.js', array( 'jquery' ), 'e', true );
}
add_action('wp_enqueue_scripts','gravatar_hovercards');

É uma excelente funcionalidade para aumentar a “sociabilidade” do vosso site e para encorajar quem escreve ou comenta a criar um perfil Gravatar.

Nota: função acima pressupõe que tanto o vosso site como o tema suportam Gravatars.

Como utilizar estilos próprios no editor de posts

Sempre que criei temas para o WordPress, senti a necessidade de permitir aos meus autores que estes também pudessem aplicar aos seus conteúdos, os estilos que criei para o tema em si.

No entanto, os meus estilos, criados especificamente para aquele tema (as minhas classes de CSS), não estavam até agora disponíveis para serem aplicados no painel de edição dos textos, de modo a manter uma coerência entre os conteúdos criados e a linha gráfica do tema.

O objectivo era que estes pudessem faze-lo sem terem que recorrer a tags de HTML ou CSS e sem terem que limitar-se aos estilos predefinidos pelo editor visual (wysiwyg) por omissão, o TinyMCE.

Isso é possível através da adição de algumas linhas de código ao ficheiro functions.php existente num tema, e da criação de um ficheiro .CSS  específico para este fim.

Continuar a ler

WordPress 3.0, novas funcionalidades (Parte II) – Custom Posts

A titulo de exemplo, imaginem que estão a trabalhar para uma empresa que pretende ter uma listagem de todos os seus colaboradores, com o seu nome, observações do cargo que ocupa, e-mail, naturalidade e respectiva extensão telefónica.

Até agora, teríamos de adicionar meta informação manualmente, ou então desenhar directamente no texto do post… Talvez até já tenha ouvido um colega seu dizer que basta um template diferente e um método ”XPTO” para retornar meta-informação de um post ou as primeiras “X” linhas, ou até mesmo cair no erro de criar uma página estática com todas as fotografias dos colaboradores com links para outros posts, pois bem… estão errados

Com a versão 3.0 do WordPress isso já não é necessário! Usem Custom Posts!

Continuar a ler

WordPress 3.0, novas funcionalidades, como usar (Parte I)

Com a chegada do WordPress 3.0 apareceram novidades e melhoraram os actuais recursos para produzir um blog! Destacaram-se para já as possibilidades de alterar o fundo e cabeçalho do seu blog a partir do painel de administração, evitando o até hoje “normal” código “a martelo” em templates!

A pergunta que se impõe é: “E como faço isso?”. Pois bem, é para isso que cá estou! :)

Tudo começa com a adição e configuração de várias funções no seu ficheiro “functions.php
Continuar a ler