O loop unificado é o que chamo de um único arquivo responsável por mostrar o conteúdo do site em diferentes contextos.
No fórum oficial as pessoas sempre perguntam sobre como modificar um ou outro aspecto de seus temas, o uso de temas filhos já é um bom começo, mas o que acontece quando o tema possui um arquivo single.php com apenas isso (tema TwentyTen):
<div id="container"> <div id="content" role="main"> </div><!-- #content --> </div><!-- #container --> </div>
O TwentyTen, TwentyEleven e muitos outros temas usam loop unificado, isto é, o código para obter e mostrar conteúdo fica em um único arquivo, no caso loop.php, mas não é só isso: lá estão verificações para mostrar o conteúdo de maneira especial e também funções criadas para reduzir a repetição. O comentário no arquivo diz o seguinte
No TwentyTen, usamos o mesmo loop em diversos contextos e ele se divide em três blocos principais: quando estiver listando posts da galeria, posts do tipo notas e todos os outros posts.
Adicionalmente, às vezes também verificamos se é uma lista de posts em arquivo, resultados de procura etc, o que permite pequenas diferenças do loop em cada modelo, sem duplicar o restante do loop que é compartilhado.
Do ponto de vista do programador, faz mais sentido verificar tudo em um único arquivo do que criar um arquivo para cada contexto, mesmo que o WordPress permita isso, então é comum encontrar temas com poucos arquivos e mesmo assim um design diferenciado em cada contexto. O código fica ainda mais robusto se usar funções atreladas a contextos, por exemplo, uma função que mostra os metadados (data, autor, tags, categoria etc) de acordo com o contexto sem precisar listar as funções existentes (the_author – the_tags etc).
Modificando temas com loops unificados
Se seu tema possui um loop unificado (os temas bem escritos possuem sim!), o tema filho para modificá-lo pode ter o “pecado da repetição”.
Em um tema filho do Twenty Ten, para personalizar o contexto de postagem única, você pode criar o arquivo single.php com um loop, sem precisar criar um novo arquivo de loop unificado:
<div id="post-" > <h1 class="entry-title"></h1> <div class="entry-content"> '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?> </div><!-- .entry-content --> <div id="postmeta"> <ul> <li></li> <li><strong></strong> foi escrito por , arquivado em </li> <?php $tag_list = get_the_tag_list( '', ', ' ); if ( $tag_list ) { echo '<li>Tags do artigo: '.$tag_list.'</li>';};?> <li></li> <li></li> <li><?php edit_post_link( __( 'Edit', 'twentyten' ), '<span class="edit-link">[', ']</span>' ); ?></li> </ul> </div><!-- sobre o post --> </div><!-- caixa do post --> <!-- comentarios -->
Isso só deve ser feito se precisa modificar apenas alguns contextos, do contrário você estará repetindo código como os temas antigos e assim estar sujeito a problemas como inconsistências e dificuldade em atualizar/modificar o tema, não exagere!
Se há a necessidade de uma modificação geral, crie o próprio loop.php, a dificuldade é maior mas em compensação seu tema não vai ficar cheio de arquivos inchados Criar um loop unificado tem a ver com PHP e condicionais do WordPress, todo XHTML e CSS fica praticamente fora disso.
Sem estresse!
Precisa de ajuda com seu WordPress?
Entre em contato