Title: Função do arquivo loop.php?
Last modified: 6 agosto, 2016

---

# Função do arquivo loop.php?

 *  [Isaac Borges](https://br.wordpress.org/support/users/isaac-borges/)
 * (@isaac-borges)
 * [13 anos, 1 mês atrás](https://br.wordpress.org/support/topic/loop/)
 * Olá pessoal tenho desenvolvidos vários temas em wp, e sempre uso a mesma técnica
   ao desenvolver meus temas, mas percebi que alguns temas que a ente baixa tem 
   uma página chamada loop. Qual a função delá? e com se deve usar corretamente 
   query_post em uma tema, quando se precisa chamar várias categorias diferentes
   dentro de uma página?

Visualizando 5 respostas - 1 até 5 (de um total de 5)

 *  Moderador [Eduardo Zulian](https://br.wordpress.org/support/users/eduardozulian/)
 * (@eduardozulian)
 * [13 anos, 1 mês atrás](https://br.wordpress.org/support/topic/loop/#post-29648)
 * A função do loop.php é apenas gerenciar uma porção idêntica de código para ser
   usada por vários outros arquivos. Não precisa usar necessariamente esse nome (
   alguns temas usam content.php, por exemplo), como você pode ver aqui na documentação
   da função [get_template_part()](http://codex.wordpress.org/Function_Reference/get_template_part),
   responsável por chamar esses pequenos arquivos.
 *  Criador do tópico [Isaac Borges](https://br.wordpress.org/support/users/isaac-borges/)
 * (@isaac-borges)
 * [13 anos, 1 mês atrás](https://br.wordpress.org/support/topic/loop/#post-29650)
 * Então vamos por parte, a minha questão é, Saber como posso fazer uma query de
   maneira correta, até agora eu sempre uso query_post, nos temas como mostra o 
   exemplo abaixo:
 *     ```
       <div id="page_conteudo">
        <?php if (have_posts()): while (have_posts()) : the_post();?>
         <?php query_posts('showposts=1&category_name=banner1&offset=0');?>
         <h1 class="titulo"><?php the_title();?></h1>
          <?php the_content();?>
          <?php endwhile; else:?>
          <?php endif;?>
        </div><!-- fim da the contente-->
       ```
   
 * E vou repetindo esta tarefa para cada parte do tema mudando apenas as categorias
   e o limit
 * Mas ouvi falar que este modo está errado, que a maneira correta não é essa, pois
   não posso usar mais de uma query_post no tema:
 * Então fiz assim, fiz uma chamada deste jeito e as demais seguindo um outro padrão:
 *     ```
       <div id="banner_central"><!-- inicio da banner central-->
   
       <ul>
         <?php
            global $post;
   
            $args = array( 'showposts' => 1, 'offset'=> 1, 'category_name' => 'banner1', 'offset' => '0');
            $posts = get_posts( $args );
   
         foreach( $posts as $post ) :	setup_postdata($post); ?>
   
       <li><?php the_content(); ?></li>
         <?php endforeach; ?>
       </ul>
       </div><!-- fim da banner central-->
       ```
   
 * No entanto, analisando o desenpenho do site com este novo padrão, não percebi
   nada de diferente quanto a maenira antiga, assim fiquei na dúvida, por isso que
   pensei que tinha algo com o arquivo loop.php, afinal, qual está correta? ou são
   duas formas de se fazer a mesma coisa?
 *  Moderador [Eduardo Zulian](https://br.wordpress.org/support/users/eduardozulian/)
 * (@eduardozulian)
 * [13 anos, 1 mês atrás](https://br.wordpress.org/support/topic/loop/#post-29673)
 * Sim, são formas diferentes de fazer a mesma coisa. No entanto, quanto você usa
   o query_posts da forma como está usando, você mexe na query principal da página
   e muda suas variáveis globais, e os resultados podem ser inesperados. A dica 
   é começar a criar um novo objeto WP_Query para assim fazer as suas buscas com
   mais tranquilidade. Seguindo um dos seus exemplos, o código ficaria assim:
 *     ```
       <div id="banner_central"><!-- inicio da banner central-->
   
           <ul>
             <?php
   
               $args = array( 'showposts' => 1, 'offset'=> 1, 'category_name' => 'banner1', 'offset' => '0');
               $banners = new WP_Query( $args );
   
               if ( $banners->have_posts() ) : while ( $banners->have_posts() ) : $banners->the_post(); ?>
   
                   <li><?php the_content(); ?></li>
   
               endwhile; endif;
   
               ?>
           </ul>
   
       </div><!-- fim da banner central-->
       ```
   
 * Sobre a diferença entre as queries, [há um post legal no Stack Exchange](http://wordpress.stackexchange.com/questions/1753/when-should-you-use-wp-query-vs-query-posts-vs-get-posts).
   Pra saber mais sobre a WP_Query, dê uma olhada na [documentação da classe](https://codex.wordpress.org/Class_Reference/WP_Query)!
 * Qualquer coisa, só gritar.
 *  Criador do tópico [Isaac Borges](https://br.wordpress.org/support/users/isaac-borges/)
 * (@isaac-borges)
 * [13 anos, 1 mês atrás](https://br.wordpress.org/support/topic/loop/#post-29678)
 * Certo, outra coisa, posso usar mais de uma vez o exemplo que vc me mandou? porque
   acho que ficou bem legal, isso, só mais uma pergunta, a forma que eu escolher
   para montar a query, pode influenciar no tempo de carregamento do site?
 *  Moderador [Eduardo Zulian](https://br.wordpress.org/support/users/eduardozulian/)
 * (@eduardozulian)
 * [13 anos, 1 mês atrás](https://br.wordpress.org/support/topic/loop/#post-29684)
 * Pode usar mais de uma vez sim, Isaac, sem problemas. E sim, pode influenciar 
   no tempo de carregamento, caso você não otimize a forma como as cria. Um exemplo:
   você poderia querer mostrar 3 posts, mas o primeiro teria uma estrutura HTML 
   totalmente diferente dos dois seguintes. Algumas pessoas fariam duas queries,
   uma pra mostrar o primeiro post (um destaque, talvez) e a outra para mostrar 
   os dois restantes. Isso não é necessário, já que com a ajuda do PHP é possível
   fazer apenas uma busca no banco e então tratar diferentemente cada post, se assim
   for necessário.
 * Você pode usar a função [get_num_queries()](http://codex.wordpress.org/Function_Reference/get_num_queries)
   para ver a quantidade de consultas sendo feitas e aproveitar pra ver [em quanto tempo seu site está carregando](http://www.wpbeginner.com/wp-tutorials/how-to-show-number-of-queries-and-page-load-time-in-wordpress/).

Visualizando 5 respostas - 1 até 5 (de um total de 5)

O tópico ‘Função do arquivo loop.php?’ está fechado para novas respostas.

## Tags

 * [css](https://br.wordpress.org/support/topic-tag/css/)
 * [php](https://br.wordpress.org/support/topic-tag/php/)
 * [temas](https://br.wordpress.org/support/topic-tag/temas/)

 * Em: [Desenvolvendo com WordPress](https://br.wordpress.org/support/forum/questoes-avancadas/)
 * 5 respostas
 * 2 participantes
 * Última resposta de: [Eduardo Zulian](https://br.wordpress.org/support/users/eduardozulian/)
 * Última atividade: [13 anos, 1 mês atrás](https://br.wordpress.org/support/topic/loop/#post-29684)
 * Estado: não resolvido

## Tópicos

### Tópicos mais populares

### Tópicos sem respostas

### Tópicos não relacionados a suporte

### Tópicos resolvidos

### Tópicos não resolvidos

### Todos os tópicos
