Transformando código PHP em Widgets
Quando escrevi o tutorial de criação de um bloco de destaques, acabei com um pequeno problema na mão.
Esse tema usa o Widgets para controlar a barra lateral, porém, por padrão, o plugin não aceita que seja inserido código PHP.
Assim fiquei com o bloco de destaques somando um espaço enorme no topo, fazendo com que os leitores tenham que rolar muito a página até encontrar o conteúdo.
Eu teria duas opções para resolver o problema:
- Editar o tema para incluir o código antes ou depois da chamada dos Widgets.
- Criar um Widget com aquele código para poder usar.
A primeira opção seria complicada, pois eu perderia a flexibilidade e teria que colocar ou no início ou no fim da coluna.
Em nenhum dos casos, eu atenderia meu objetivo, já que ou empurraria a barra toda para baixo e não poderia deixar em primeiro lugar o que eu quero ou colocaria no final da barra, onde perderia sentido de ser.
Já a segunda opção seria a mais viável, se eu não estivesse sem tempo (e com um pouco de preguiça, para falar a verdade).
Vou criar este Widget, sim, mas mais para frente.
Tinha urgência de resolver o problema do local do blog.
Foi então que em uma rápida pesquisa achei o Widgetize Anything.
O funcionamento dele é quase idêntico aos text widgets, com a grande diferença que posso escrever códigos em PHP dentro dos mesmos.
Instalando:
Instalar é muito simples, basta:
- baixar o plugin no link acima
- descomprimir
- colocar o arquivo dentro da pasta wp-content/plugins
- ativar no painel do Wordpress
Configurando:
A configuração é muito simples, basta definir quantos widgets você quer nas opções, coloquei 10 para deixar alguns de folga (estou usando 4), ter vários não aumenta o consumo de recursos (pelo menos não senti diferença), mas não é bom exagerar.
Usando:
Agora vamos a parte legal, usar o plugin.
O código PHP é executado possui algumas limitações, portanto não podemos usar exatamente o mesmo código apresentado antes, precisaremos fazer algumas alterações, como abaixo:

Como podem notar no código as principais diferenças são:
- Não dá para mesclar PHP com HTML.
- Ao invés de usar funções que imprimam os valores diretamente, tive que jogá-las em um echo.
- Tive que passar parâmetros para as funções.
O primeiro item não é possível, pois o plugin pega tudo que está escrito na parte do código e envia para o PHP executar, caso fizéssemos a mistura, correríamos grandes riscos de quebrar a execução, isso se chegasse a funcionar (nem testei).
Usando funções que imprimam valores diretos funcionaria, mas tornaria o código um pouco confuso.
Já a questão de passar os parâmetros para as funções é necessário, pois o Wordpress não consegue tratar isso como um loop, se eu não tivesse feito essas alterações, ele pegaria o primeiro artigo do loop da página que está para executar as funções.
Mesmo com essas limitações, o plugin é de grande valia.
Já aproveitei para colocar 4 com os seguintes conteúdos:
- Artigos em destaque.
- Últimos artigos (não gostava do Widget Padrão).
- Artigos da categoria SEO, para quem acompanhava o BrPoint poder localizar os artigos mais rápidamente.
- O Top Commentators, para exibir a lista dos usuários que mais comentam e seus respectivos blogs.














Não consigo simpatizar com os widgets. Estou usando no Desconexidades por falta de opção, mas ainda prefiro editar o código "na unha", para ter certeza do que vai acontecer. Sem contar que sempre fico na dúvida se os widgets não deixam o blog mais lento...
Lu, eu não conseguiria viver sem eles.
Estou sempre mudando a lateral e fazer isso na mão é muito chato.
Quanto ao desempenho, não sinto qualquer diferença.
Abraço
Muito bom! Trabalho com PHP já há algum tempo e achei o artigo muito interessante. Quanto ao desempenho também não senti diferença.
André, obrigado.
Abraço
[...] quem utiliza o Sidebar Widgets, pode usar o Widgetize Anything e colocar o código abaixo: PLAIN TEXT [...]
Bruno.
Teus comentários estão com um monte de warnings:
Warning: preg_match() [function.preg-match]: Empty regular expression in /home/brpointn/domains/brpoint.net/public_html/wp-content/plugins/avatar_blogblogs.php on line 45
Warning: preg_match() [function.preg-match]: Empty regular expression in /home/brpointn/domains/brpoint.net/public_html/wp-content/plugins/avatar_blogblogs.php on line 46
Warning: preg_match() [function.preg-match]: Empty regular expression in /home/brpointn/domains/brpoint.net/public_html/wp-content/plugins/avatar_blogblogs.php on line 47
Jânio, valeu e desculpe a demora.
Estava desenvolvendo um plugin.
Tenho que aprender a não fazer isso em ambiente de produção...
Abraço
não estou conseguindo fazer isso com o Top Commentators.
coloquei os 'echos' mas mesmo assim dá erro.
Nossa, exatamente o meu problema, eu tava tentando colocar os destaques com o Widgetize Anything e não estava dando certo, muito obrigado, abraços.
Anderssauro, estou usando o seguinte código, para exibir o top commentators:
ns_show_top_commentators();
echo '</ul>';
Dario, que bom que ajudou.
Abraços