Filtros nos artigos do WordPress

Vamos adicionar filtros aos artigos do WordPress. Por exemplo: eu tive um caso onde importei diversos arquivos e alguns continham tags HTML antigas como <b> e <i>. Quero troca-las por strong e em, respectivamente.

A rotina é simples, vamos ao exemplo:

function filtrarArtigo($content) {
	// (...)
	return $contentFiltrado;
}
add_filter('the_content', 'filtrarArtigo');

Eu utilizo o método add_filter que vai chamar o outro método filtrarArtigo. Este, por sua vez, recebe como parâmetro o conteúdo do artigo. Esse filtro vai acontecer cada vez que o artigo for exibido na página.

Ler mais »

Limitar ou desabilitar as Revisões de Artigo no WordPress

Sabe quando escrevemos um artigo no WordPress e vai rolando um auto save ou quando alteramos o artigo e gravando a cada alteração? Já percebeu que o WordPress vai criando diversas versões para o artigo?

Claro que isso é muito útil em alguns casos. Podemos nos arrepender de alguma alteração ou querer recuperar uma cagada qualquer.

Mesmo assim, podemos limitar ou desababilitar essas revisões de arquivo (ou post revisions em inglês).

Para conseguir isso, basta alterarmos o arquivo wp-config.php que fica localizado na pasta raiz do WordPress.

Para desabilitar, após a linha que contém o comentário Happy Blogging! basta inserir:

/* desabilitar revisões de artigo */ 
define('WP_POST_REVISIONS', FALSE);

Da mesma forma que para limitar as revisões de post, devemos trocar o valor false para o número que queremos usar como limite:

/* limitar revisões de artigo em no máximo 2 */ 
define('WP_POST_REVISIONS', 2);

Pronto, isso irá limitar as revisões de artigo em no máximo 2. Um número bom que não vai mais inchar nosso banco de dados desnecessariamente.

Lembre-se que você vai alterar um arquivo muito importante do seu WordPress, faça com toda a cautela necessária.

Como remover o meta generator do WordPress

Quem utiliza WordPress pode verificar que normalmente ele cria na tag head do seu site uma tag similar à seguinte:

<meta name=”generator” content=”WordPress” />

Isso normalmente não é legal, remover isso é cuidar ligeiramente da segurança do próprio site. De qualquer forma, é desnecessário em nosso site.

Logo, vou passar a dica para remover esse meta generator que indica (para robôs etc) que o site foi desenvolvido em WordPress.

A dica é simples, basta incluirmos a seguinte linha no arquivo functions.php de nosso tema ativo:

remove_action('wp_head', 'wp_generator');

Se quiser pode fazer isso dentro do próprio admin de seu site. No menu, vá em “Aparência” > “Editor” e lá selecione o arquivo functions.php. Lembre-se de inserir essa linha antes do fechamento da tag ?>

Seu browser é também a sua IDE

Vou listar algumas das melhores IDEs para desenvolvimento em evidência no mercado. Não apenas para montar HTML 5 e CSS 3, mas também para códigos e algorítmos em diversas tecnologias, como Javascript, jQuery e até podemos arriscar algumas linguagens “server side”.

JSBin

JSBin é uma ferramenta excelente para teste colaborativo de html e javascript. Facilitando a integração algumas das mais populares bibliotecas e frameworks JS, ele permite que o usuário insira rapidamente o seu código e grave com um controle de versão muito simples. JSBin definitivamente não é apenas um marcador de código.

Característica que vale ressaltar: JSBin é open source, 100% free.

JSBin

Kodingen

PHP, Ruby on Rails, Django, Perl, SVN, Git, etc? Você ainda achava que era impossível ter uma IDE pra tudo isso que fosse também browser based? Kodingen é o nome dessa poderosa ferramenta que oferece uma boa parte de seu sistema de forma gratuita e está conquistando muitos fãs pela web.

Kodingen

Ler mais »

Como criar um Plugin de WordPress para encurtamento de Links via bit.ly

Quero falar sobre o processo de criação de plugin em WordPress, vou aproveitar o contexto e fazer aqui um que recebe (ou não) um link e retorna um link encurtado pelo site Bit.ly.

O plugin adiciona uma página na área de administração com um pequeno form onde podem ser informados o login e a API key do bit.ly.

O plugin poderá ser chamado no wordpress via outro plugin ou no código do tema utilizado, através de um ou mais métodos que vamos fornecer. Também poderemos chamar o plugin através de um <em>shortcode</em> que vamos criar.

Se não fornecermos um link para encurtamento, o plugin deverá verificar se ele está sendo executando durante um loop e assim retorna o permalink do artigo em questão.
Ler mais »

CSS 3 de forma simples com o eCSStender!

Simplesmente é um projeto open-source em javascript bem bacana que facilita a vida de quem tem que criar um CSS. Algo como um único border-radius pra servir com todo browser (menos a merda do IE, claro).

Ele é totalmente modular e com suas extensões pode-se obter muitas facilidades, como ampliar seletores CSS 3 para IE6, criar transforms, transitions, @font-face de forma mega fácil.

Para usar o módulo de seletor deve-se indicar um outro módulo já pronto, como o Sizzle, o mesmo já carregado e utilizado pelo jQuery e fazer uma pequena declaração no js indicando o seletor:

eCSStender.addMethod('findBySelector',Sizzle);

O eCSStender tem uma integração excelente com diversas bibliotecas tais como jQuery, prototype, etc. Não rola conflito! Fica tudo de forma simples e clara pra manutenção, deixe a trabalheira com o eCSStender!

O nome está assim para trazer a pronúncia: “extender”.

No link http://ht.ly/2b5Lc tem um exemplo bem legal que usei junto do html5shiv para usar tags de html 5 na página e ter algum resultado decente no IE6.

O seletor jquery não funciona depois do ajax com o click() e outros eventos – use o live()!

O assunto é extremamente simples, mesmo assim é um dos mais procurados e não há muita facilidade de se encontrar no google com palavras chave comuns às perguntas que são feitas.

Sempre aparecem perguntas na lista do Google Groups “jQuery Brasil” sobre exatamente a mesma resposta:

  • “O evento click() para de funcionar depois de criar elementos com ajax”
  • “Seletor do jQuery para elementos criados com ajax”
  • Meu site para depois da resposta ajax
  • O jQuery não funciona direito com o ajax, só funciona antes de usa-lo

A resposta e a solução são simples:

Usem o maldito live!

Ler mais »

sliderMenu – Plugin de jQuery para banner de site com listagem de artigos

Estou lançando um novo plugin para jQuery: sliderMenu com apenas 4KB de JavaScript!

Não fiz o plugin sozinho, contei com a colaboração do Vitor Leal (visite o site dele), que preparou o CSS, as imagens e o HTML básico que é exibido no final. Fiquei responsável por todo o JavaScript além de alguns “position absolutes” e a idéia de o html inicial que vai montar o banner ser totalmente correto e útil em termos de SEO. A ideia é que a pessoa que montar o seu sliderMenu não perca créditos de SEO da sua página.

Você pode ver uma demonstração do plugin em http://leobalter.net/jquery/banner/ e também pode fazer o download do plugin em http://leobalter.net/jquery/banner/sliderMenu.zip.

Edição: como o projeto é opensource disponibilizei o mesmo no github: http://github.com/leobalter/sliderMenu.

plugin de jQuery sliderMenu
Ler mais »

Taxonomias no WordPress

Taxonomia é, no mínimo, um nome estranho. Mesmo assim, o seu valor é enorme no WordPress. Pelo Wikipédia, sua sintaxe seria:

Taxonomia (do Grego verbo τασσεῖν ou tassein = “para classificar” e νόμος ou nomos = lei, ciência, administrar), foi uma vez, a ciência de classificar organismos vivos (alfa taxonomia). Mais tarde a palavra foi aplicada em um sentido mais abrangente, podendo aplicar-se a uma das duas, classificação de coisas ou aos princípios subjacentes da classificação. Quase tudo – objectos animados, inanimados, lugares e eventos – pode ser classificado de acordo com algum esquema taxonômico

Em algumas situações específicas, não tão raras, precisamos classificar algo por diversos aspectos diferentes. Por exemplo, eu posso definir uma pessoa pelo tamanho, sexo, idade, peso, nacionalidade, estado civil, se tem filhos ou não, entre diversas outras. Muitas dessas classificações são próximas, outras em nada se relacionam. Algumas podem ser definidas por uma resposta binária (sim ou não) e outras por uma resposta quantitativa ou qualitativa.

Taxonomia - Tree of Life
Onde esse papo entra no WordPress? Quando falamos de categorias e tags. São dois tipos básicos e nativos do WordPress para classificações taxonômicas (quase um palavrão). Além desses, tem um um pouco menos utilizado que são as categorias de links, também muito úteis.

Sabemos que pelas tags não podemos hierarquizar as palavras chave utilizadas. Não podemos definir que quem é de uma certa tag, terá que ser também de outra tag. Isso já acontece nas categorias. Você pode definir uma categoria chamada “restaurantes” e a elas vincular as subcategorias “brasileiro“, “francês“, “japonês“.

Mesmo assim ficaria complicado caso também criássemos uma categoria chamada idade, para conter sub-categorias como criança, adolescente, adulto e idoso. Ou até sexo para as subcategorias masculino ou feminino.

Não faz sentido ter que criar uma categoria chamada sexo. Podemos querer marcar uma de suas subcategorias, mas teríamos um bacalhau – ou gambiarra – que seria a categoria ascendente figurando ali pra questões de organização.

Pra isso a equipe que desenvolve WordPress já tinha pensado nessas situações e incluiram métodos prontos para trabalhar com essas situações e assim criar e manipular novas taxonomias. O problema é que a última prioridade é a documentação e infelizmente o material ainda é muito curto.

Já adianto que existem plugins prontíssimos pra trabalhar com essas taxonomias e um deles vou inclusive demostrar melhor suas funcionalidades.

São eles:

Os dois são bons, mas o “Simple“, como o próprio nome já diz, é muito simples, sendo que o Custom não é difícil e tem uma interface amigável, sendo esse com que vamos trabalhar aqui.

O plugin permite a criação de taxonomias customizadas com:

  • nome título da taxonomia
  • plurais pro nome
  • slug pros permalinks
  • tipo da taxonomia, que pode ser pra posts, páginas ou links
  • possibilidade de hierarquia da taxonomia
  • descrição da taxonomia
  • possibilidade de escolher apenas um valor da taxonomia no máximo

A criação da taxonomia é super simples. Aparecerá um menu na administração do wordpress com o título taxonomies. O resto é fácil e intuitivo, mesmo que o plugin não esteja traduzido até o momento.

Logo após é só editar um artigo qualquer que aparecerá uma box extra com a sua taxonomia criada. Ela poderá ser apresentada de forma similar à de tags ou à de categorias.
taxonomies-write-post

Utilizada a taxonomia agora temos 2 formas de trabalhar com a mesma. Uma delas, a mais fácil é a sua utilização via widgets do tema. Você pode montar um cloud específico da taxonomia, por exemplo.

Também podemos a taxonomia dentro da estrutura de um tema. Essa é justamente a parte mais interessante.

Primeiro passo: criar a uma tag cloud de uma taxonomia específica:

wp_tag_cloud( array( 'taxonomy' => 'nome_da_taxonomia' ) );

Tudo o que você deve mudar nesse código acima é o ‘nome_da_taxonomia‘ para o nome da sua taxonomia criada.

Vamos ao próximo exemplo, onde buscamos uma lista dos termos de uma determinada taxonomia utilizando um método similar ao get_categories_link().

echo get_the_term_list( $post->ID, 'taxonomy_name', 'Taxonomy Label: ', ', ', '' );

Edição: fica uma dica para quem quiser transformar a listagem em uma lista html:

echo get_the_term_list( get_the_ID(), 'area-de-atuacao', '<h3 class="titulo">Áreas de atuação:</h3><ul class="lista"><li>', '</li><li>', '</li></ul>' );

Note que esse código acima deve acontecer ou dentro de um ‘loop’ do WordPress ou com a indicação de um id de post específico. Mais especificações para o método get_the_term_list no codex do WordPress.

Um alerta: se utilizar uma taxonomia ainda não criada nesse método, o template vai dar pau no meio do carregamento e seu site não vai funcionar até você resolver o problema. Em outras palavras, o get_the_term_list vai gerar um erro php e o carregamento da página será interrompido.

Como podemos registrar novas taxonomias diretamente no nosso template para evitar isso?

No arquivo functions.php basta adicionar o seguinte código, claro que antes adaptando o mesmo:

add_action( 'init', 'criar_taxonomias', 0 );
 
function criar_taxonomias() {
	register_taxonomy( 'no', 'post', array( 'hierarchical' => false, 'label' => __('Nome', 'domain'), 'query_var' => 'nome', 'rewrite' => array( 'slug' => 'nome' ) ) );
}

Isso já evita que aconteçam problemas no meio do caminho.

Como mostrar artigos apenas com um termo de uma taxonomia específica? Muito simples:

query_posts( array( 'people' => 'will-smith', 'showposts' => 10 ) );

O resto fica por conta de que se faça o loop.

Mais um passo: você já conhecia o método get_tags()? Imagino que sim, ele serve pra montar uma coleção de objetos com informações de tags. Mas agora quero mesmo é apresentar o get_terms(). Esse método vai simplesmente lhe retornar uma array com todos os termos presentes na taxonomia indicada nos parâmetros.

Algumas propriedades desses objetos são: name, slug, description, term_id, taxonomy, etc. Mais informações sobre os dados gravados no banco de dados no Codex do WordPress.

Agora é bola pra frente e fazer bom uso das suas taxonomias.

Página 1 de 3123

Performance Optimization WordPress Plugins by W3 EDGE