Como implementar Widgets num tema


Nenhuma barra lateral definidaA pedido de várias famílias do fórum aqui vai a uma versão, simplificada e em portguês, desta página.

A maior parte dos temas existentes pode ser convertida em cinco a dez minutos. Outros poderão levar uma hora ou mais. Alguns, depois de convertidos, vão parecer horríveis por muito que se ajuste. Não há nenhuma garantia de que um tema “pós-widget” passe a ser mais agradável ou a funcionar melhor, portanto considere-se avisado.

Estou a partir do princípio que os seguintes ingredientes estão disponíveis:

  • Alguma capacidade para editar PHP (se bem que é pouco provável que seja preciso escrever código novo)
  • Algumas noções de HTML
  • Acesso aos ficheiros /wp-content/themes/<tema>/sidebar.php e /wp-content/themes/<tema>/functions.php (pode ser que não exista, em qual caso vai ser preciso criá-lo. Sobre isto, mais adiante)

Vamos a isto…

1. editar sidebar.php

Este ficheiro contém as instruções para apresentação da barra lateral. Num tema sem suporte para widgets, normalmente tem código parecido com este:

<div id="sidebar">
	<ul>
		<li>
			<h2>Autor</h2>
			<p>Um pouco sobre si, o autor. Apenas uma introdução.</p>
		</li>
			//... e por aí fora...
	</ul>
</div>

Antes de mais nada, é preciso dizer ao sidebar.php para mostrar widgets, se os houver. A lógica é introduzir uma condição ( if) que diz: “se existir a função de widgets, mostrar os widgets, senão mostrar a barra lateral normal“, adicionando três linhas de código, assim:

<div id="sidebar">
	<ul>
		<?php /* Barra com widgets, se instalados. */
		if ( !function_exists(’dynamic_sidebar’) || !dynamic_sidebar() ) : ?>
		<li>
			<?php include (TEMPLATEPATH . '/searchform.php'); ?>
		</li>
		<li>
			<h2>Autor</h2>
		        <p>Um pouco sobre si, o autor. Apenas uma introdução.</p>
		</li>
			//... e por aí fora...
		</li>
<?php endif; ?>
</ul>
</div>

Uma nota de aviso: a maior parte dos problemas que tive ao implementar isto deveu-se à falta do endif final ou a alguma falta de cuidado com o código. É preciso ver e rever antes de começar a arrancar cabelos…

2. editar (ou criar) functions.php

Este ficheiro reside na directoria do tema (Se não existir basta criá-lo) e é aqui que é feito o “registo” da função de widgets para a barra lateral, definindo a seguinte função:

<?php
if ( function_exists('register_sidebar') )
    register_sidebar();
?>

E é só?  É. Quatro linhas e já está.

3. Activar widgets no backoffice

No painel: Apresentação->Temas->Widgets. Parabéns!

14 respostas a “Como implementar Widgets num tema”

  1. [...] informação em: http://www.wordpress-pt.com/2008/01/11/como-implementar-widgets…/ Bookmark this [...]

  2. Muito bom José.

    Isso é algo que irá dar muito jeito ;)

  3. comunidade de um bairro -perus s.p OTIMO

  4. OTIMO

  5. Às vezes este processo não é tão simples e imediato… mas sim está um bom tutorial…

  6. Obrigado por mais um bom artigo para o wordpress escrito na nossa língua.
    Faço referência ao mesmo no meu Blog o http://sitesmais.com
    O meu Blog foi desenvolvido em wordpress a partir da versão disponibilizada pela comunidade e aborada e divulga ferramentas de apoio ao trabaho dos webmasters.

  7. Muito boa estas informações sobre Widgets. Valeu!

    Abs,
    Marcelo

  8. [...] Wordpress-PT Publicado em   Wordpress - Tutorials , widgtets in wordpress,wordpress widgets |  por [...]

  9. Bom tutorial.
    Um abraço

  10. uma comunidade versatil com muitos linkis favoritos soberbo

  11. Boa noite

    Como é possível neste tema colocar apenas um excerto do post e depois uma indicação “Ler mais sobre este tema”?

    Coloco esta questão aqui porque o registo no fórum está desactivado.

  12. Boa noite! Começando pelo fim… o registo do fórum não está desactivado. O registo é unico para todo o site (blog, fórum, página de tradução, etc…) e deverá ser efectuado aqui: http://wordpress-pt.com/wp-login.php?action=register

    Quanto à sua questão, se já tem a última versão do WP e não alterou o editor de texto, o botão que lhe permite inserir a etiqueta “ler mais…” é o 5ª a contar da direita para a esquerda, na barra de ferramentas que aparece quando está a escrever o artigo. Se não conseguir encontrar esse botão, pode inserir a etiqueta, utilizando o código ““, mas para isso terá que estar no mode de edição de código.

    Espero ter ajudado… um abraço,
    Américo

  13. Boa noite, Américo!

    Obrigado pela sua ajuda! Já estou registado e encontrei o botão.

    Um abraço,

    António Parente

  14. Gostaria de saber se existe alguma versão com o portugues brasil.Se alguem tiver comente em meu site por favor.

    Forte abraço a todos

    André Ortiz

    http://www.manacobil.info

Deixe Uma Resposta