Coletânea de dicas sobre WordPress

Resolvi escrever uma série de posts com diversas dicas para o WordPress.

Temas

Vai escrever um template do zero? Recomendo começar pelo HTML5 Boilerplate. Trata-se de um template com diversas otimizações e resets para garantir a compatibilidade máxima entre browsers.

Também é interessante uma leitura sobre o desenvolvimento de temas, principalmente sobre a hierarquia dos templates e a função get_template. Venho utilizando essa função para não repetir código nos arquivos archive.php, page.php, search.php e single.php.

Rascunhos de posts

O WordPress salva automaticamente seus posts, o que pode aumentar o tamanho de seu banco de dados. Para desabilitar esse recurso, você pode editar o arquivo /wp-config.php:
Read more

 

Busca nos campos personalizados do WordPress

Os campos personalizados é um recurso usado no WordPress para que o autor de um post possa armazenar dados a sua escolha. Você pode usar esse recurso de várias formas: mostrar imagens personalizadas, falar o que você está ouvindo durante a escrita do post, adicionar informação pessoal e muito mais. Em um blog sobre livros, você pode usar tal recurso para criar os campos “Autor”, “Editora”, “Ano” e por aí vai.

Estou trabalhando em um projeto que utiliza os campos personalizados na área de Imprensa, onde cada post aponta em que tipo de imprensa determinada informação foi postada: Rádio, TV, Internet, Jornal. Como dito acima, criar o campo personalizado é simples. Difícil é filtrar os posts de acordo com o valor do campo.

A solução

Descobri um plugin chamado Search Custom Fields. Numa explicação rápida, ele adiciona os Campos Personalizados na query de busca de posts.

Antes:

<a href="/?s=minhabusca">minha busca</a>

Depois:

<a href="?meucampopersonalizado=Veículo&s=meuvalordocampopersonalizado">minha busca pelo campo personalizado</a>

Na documentação do plugin, o autor mostra como turbinar o campo de busca do WordPress. Ao invés disso, escrevi uma pequena função para listar os valores de um atributo personalizado:

function list_custom_fields($metakey, $output) {
	// based on http://sixrevisions.com/wordpress/custom-fields-search/
	global $wpdb;
	$items = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey) );
	if ($items) {
		if ($output == "dropdown") { // display values in a select
			echo "<form action=\"/\" method=\"get\"><input type=\"hidden\" name=\"key\" value=\"$metakey\" /><select name=\"s\" onchange=\"this.form.submit();\"><option></option>";
			foreach ($items as $item) {
			  echo "<option value=\"" . $item . "\">" . $item . "</option>";
			}
			echo "</select></form>";
		} else if ($output == "list") { // display values in a list
			echo "<ul>";
			foreach ($items as $item) {
			  echo "<li><a href=\"/?s=$item&key=$metakey\">$item</a></li>";
			}
			echo "</ul>";
		}
	}
}

Coloque a função acima no arquivo functions.php do seu tema e chame-a, de duas formas, em seu sidebar, por exemplo:

< ?php if(function_exists('list_custom_fields')) list_custom_fields("Veículo", "dropdown"); ?>

…para mostrar os valores do campo personalizado “Veículo” em select do HTML ou…

< ?php if(function_exists('list_custom_fields')) list_custom_fields("Veículo", "list"); ?>

…para mostrar os valores do campo personalizado “Veículo” em uma lista.

 

URL curta no WordPress

As URLs curtas possuem muitas utilizações por aí, principalmente em microblogs como o Twitter.

Use a função acima no arquivo functions.php do seu tema. Para exibir o link, crie a seguinte linha no arquivo do post – single.php:

< ?php echo '<a href="'.getShortUrl(get_permalink($post->ID)).'">short url'; ?>
 

Live stream

Dias atrás, vi o Planet Caffo e achei a idéia bem interessante. Basicamente, um mega-agregador 2.0. O Caffo me indicou o Venus, aplicação em Python que gerar esse rio de conteúdo. Me deparei então com o RSS Stream, um plugin do WordPress que faz a mesma coisa. Assim, criei meu próprio mega-agregador :)

 

Gmail + WordPress = post por email

Eu já tinha visto o recurso de post por email mas nunca havia testado. É muito simples. Vamos lá:

  1. No adminstrador do WordPress, escolha Options -> Writing.
  2. Em ‘Posts por e-mail’, defina:
    • Mail Server: ssl://pop.gmail.com – Port: 995
    • Login Name: [email protected]
    • Password: : suasenha, naturalmente ;)
  3. Agora, basta enviar o post para o destinatário definido no adminstrador.

Dica extra

É possível passar a categoria do post no assunto da mensagem. Basta colocar o seu respectivo id entre colchetes. Exemplo: supondo que a categoria wordpress tenha ID = 5, o assunto da sua mensagem seria: [5] título do meu post exemplo.

 

Top plugins para WordPress

WordPress é unanimidade em solução para blog. Há uns três anos, quando comecei minha vida blogger, eu mesmo escrevia um pequeno gerenciador de notícias, mas isso não se mostrou tão eficiente. Depois disso, adotei o AJ-Fork, mas esse também não se mostrou tão eficiente. Adotei o WordPress e agora relato alguns plugins bastantes interessantes, que uso aqui, ou na extranet da empresa (sim, aonde trabalho estamos desenvolvendo uma extranet).
Read more