Para transformar qualquer tema do Wordpress em um compatível com widgets

2006 Junho 5
by Leonardo Fontes

Depois de muito batalhar por temas visualmente interessantes e que ao mesmo fossem compatíveis com widgets, descobri como fazer para que qualquer tema pudesse trabalhar com a funcionalidade.

A primeira coisa a fazer é criar, no diretório do tema, o arquivo functions.php, que deve conter o seguinte código:

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

Depois editar o arquivo sidebar.php. No meu tema, ele está assim:

<div id=”sidebar”>
<div id=”noindent”>
<ul>
<li>
<h2><?php _e(’Procurando alguma coisa?’); ?></h2>
<?php include (TEMPLATEPATH . ‘/searchform.php’); ?>
</li>
———-//
<?php if ( !function_exists(’dynamic_sidebar’)
|| !dynamic_sidebar() ) : ?>
———//
<li>
<h2><?php _e(’Author’); ?></h2>
<ul><li>Information about you!</ul>
</li>
<?php if (function_exists(’wp_theme_switcher’)) { ?>
<li>
<h2><?php _e(’Themes’); ?></h2>
<ul>
<li><?php wp_theme_switcher(); ?></li>
</ul>
</li>
<?php } ?>
<li>
<h2><?php _e(’Categories’); ?></h2>
<ul>
<?php wp_list_cats(); ?>
</ul>
</li>
<li>
<h2><?php _e(’Archive’); ?></h2>
<ul>
<?php wp_get_archives(’type=monthly’); ?>
</ul>
</li>
<li>
<h2><?php _e(’Links’); ?></h2>
<ul>
<?php get_linksbyname(’Friends’, ‘<li>’, ‘</li>’, ‘<br />’, FALSE, ‘name’, TRUE); ?>
</ul>
</li>
<li>
<h2>Meta</h2>
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<?php wp_meta(); ?>
</ul>
</li>
———-//
<?php endif; ?>
———-//
</ul>
</div> <!– end of noindent –>
</div>

Entre ———-// está o código que precisa ser inserido. Toda a lateral normal, sem o uso de widgets, deve ficar dentro da condicional. No meu caso, a única parte que deixei fora foi a caixa de pesquisa.

Para temas com mais de uma lateral (bom lembrar que o arquivo sidebar.php não define apenas lateral, é um termo genérico, já que ele pode definir áreas que estejam no rodapé ou na cabeça), o procedimento é criar o functions.php com dois (ou mais, dependendo da quantidade de colunas) códigos:

<?php
if ( function_exists(’register_sidebar’) )
register_sidebar(n);
?>
<?php
if ( function_exists(’register_sidebar’) )
register_sidebar(n);
?>

Em que (n) é o número da coluna. E, como para cada coluna existe um sidebar.php respectivo (sidebar.php, sidebar1.php, sidebar2.php…), o código para cada arquivo segue a lógica:

<div id=”sidebar”>
<div id=”noindent”>
<ul>
<li>
<h2><?php _e(’Procurando alguma coisa?’); ?></h2>
<?php include (TEMPLATEPATH . ‘/searchform.php’); ?>
</li>
———-//
<?php if ( !function_exists(’dynamic_sidebar’)
|| !dynamic_sidebar(n) ) : ?>
———-//
<li>
<h2><?php _e(’Author’); ?></h2>
<ul><li>Information about you!</ul>
</li>
<?php if (function_exists(’wp_theme_switcher’)) { ?>
<li>
<h2><?php _e(’Themes’); ?></h2>
<ul>
<li><?php wp_theme_switcher(); ?></li>
</ul>
</li>
<?php } ?>
<li>
<h2><?php _e(’Categories’); ?></h2>
<ul>
<?php wp_list_cats(); ?>
</ul>
</li>
<li>
<h2><?php _e(’Archive’); ?></h2>
<ul>
<?php wp_get_archives(’type=monthly’); ?>
</ul>
</li>
<li>
<h2><?php _e(’Links’); ?></h2>
<ul>
<?php get_linksbyname(’Friends’, ‘<li>’, ‘</li>’, ‘<br />’, FALSE, ‘name’, TRUE); ?>
</ul>
</li>
<li>
<h2>Meta</h2>
<ul>
<?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<?php wp_meta(); ?>
</ul>
</li>
———-//
<?php endif; ?>
———-//
</ul>
</div> <!– end of noindent –>
</div>

Compartilhe:
  • BlinkList
  • del.icio.us
  • digg
  • Ma.gnolia
  • YahooMyWeb
  • Facebook
  • Google
  • LinkedIn
  • Pownce
  • Rec6
  • StumbleUpon
  • Reddit
  • Slashdot
  • TwitThis