Query_posts() formas de utilizar!
em 16 de junho de 2010 e possui 5.314 Visualizações
query_posts() é uma das funções essenciais que utilizamos no WordPress, onde com ela podemos fazer as seguintes modificações em nosso blog:
- Só apareça um post ou uma página.
- Mostrar todos os posts em um tempo determinado.
- Mostrar somente os últimos posts na página principal.
- Alterar a ordem dos posts.
- Mostrar somente os posts de uma determinada categoria.
- E várias outras coisas….
query_posts() é basicamente uma função para modificar a consulta a base de dados facilitando a tarefa, onde com base nos parâmetros passados, a função modifica a saída dos nossos posts. Essa função foi pensada para ser utilizada juntamente com o loop do WordPress, que se encarregará de mostrar o resultado da função query_posts() com as modificações que forem estipuladas.
Exemplo de Uso
<?php
query_posts('....');
while (have_posts()) : the_post();
...
endwhile;
?>
Parâmetros
query_posts() nos permite enviar uma série de parâmetros que podemos separar em vários tipos:
Parâmetros de Categorias
- cat
- category_name
Exemplo
query_posts('cat=4'); //Unicamente os posts da categoria com ID (4)
query_posts('cat=-4'); //Todos exceto os da categoría com ID (4)
query_posts('category_name=Categoria'); //Só os da categoria (Categoria)
query_posts('cat=1,2,4,5,7'); //Unicamente os posts das categorias indicadas.
Parâmetros de Tags
- tag
Exemplo
query_posts('tag=cooking'); // Todos os posts com a tag (cooking)
query_posts('tag=bread,baking'); //Todos os posts que contenham (bread) ou (baking)
query_posts('tag=bread+baking+recipe'); //Todos los posts que contenham as 3 tags
Parâmetros de Autor
- author_name
- author
Exemplo
query_posts('author_name=Pedro'); //Todos os posts onde o Autor seja (Pedro)
query_posts('author=2'); //Todos os posts do autor (2)
query_posts('author=-4'); //Todos os posts menos do autor (4)
Parâmetros de posts e páginas
- p
- name
- page_id
- pagename
- showposts
Exemplo
query_posts('p=1'); //Unicamente o post (1)
query_posts('name=first-post'); //Unicamente o post com nome (first-post)
query_posts('page_id=7'); //A página com ID (7)
query_posts('pagename=about'); //A página com nome (about)
query_posts('showposts=1'); //Modifica o LIMIT do SQL para indicar o número de posts a mostrar.
Parâmetros de tempo
- hour
- minute
- second
- day
- monthnum
- year
query_posts('hour=01'); //Todos os posts da seguinte hora: (1:00)
query_posts('minute=30'); //Todos os posts do minuto 30(*:30)
query_posts('second=07'); //Posts do segundo 7 (*:*07)
query_posts('day=1'); //Os posts dos días (1)
query_posts('monthnum=2'); //Os posts do mês (2)
query_posts('year=2005'); //Os posts do ano de (2005)
Parâmetros de Paginação
- paged
- posts_per_page
- order
Exemplo
query_posts('paged=2'); //Todos os posts que se encontram na página (2) da paginação
query_posts('posts_per_page=10'); //Número de posts por página (10)
query_posts('order=ASC'); //Orden da paginação (ASC)
Combinando Parâmetros
Não teria muita graça se não pudessemos utilizar essas funcão com um só parâmetro, isso limitaria e muito seu potencial, mas para isso fazemos o uso de (&) para unir vários parâmetros:
query_posts("cat=-1,-2,-3&page_id=7&tag=bread,baking“);
Complemento adicionado em: 31/05/2011 Às 19:35
Query_posts com mais de uma página inclusa
<?php $argumentos = array('post_type' => 'page', 'order' => 'asc', 'post__in' => array(/*Id das páginas */ 139, 141, 143)); query_posts($argumentos); ?>

Tags:




por rodrigo
show de bola cara, gostei e entendi mais fácil que na própria documentação vlw
1 de agosto de 2010
Trackback: [...] é basicamente uma função para modificar a consulta a base de dados faci...
Trackback: [...] é basicamente uma função para modificar a consulta a base de dados faci...
Trackback: [...] é basicamente uma função para modificar a consulta a base de dados faci...
Trackback: [...] é basicamente uma função para modificar a consulta a base de dados faci...
Trackback: [...] é basicamente uma função para modificar a consulta a base de dados faci...
Trackback: [...] é basicamente uma função para modificar a consulta a base de dados faci...
Trackback: [...] é basicamente uma função para modificar a consulta a base de dados faci...
Trackback: [...] é basicamente uma função para modificar a consulta a base de dados faci...
por Marcelo Araldi
Boa noite Anderson!
Muito bom seu tutorial, mas fiquei com algumas dúvidas, você pode me ajudar mais um pouco? hehe
1 – Preciso mostrar somente os posts de uma determinada categoria em uma página, o query_posts() faz isso?
2 – Aonde insiro os códigos que você citou acima?
Muito obrigado por compartilhar seu conhecimento, abraço!
21 de fevereiro de 2011
por Anderson
Fala Marcelo beleza? Espero que sim. Com query_post vocês faz isso sim com toda certeza e de uma forma bem simples.
Seu loop vai ficar um pouco personalizado, sendo que tenho duas formas para te mostrar:
1ª » Não é bem uma query_post e sim uma manipulação onde utilizo feature_post e get_post com um laço php, creio que basta você copiar e editar a categoria e quantidade de posts que ela vai mostrar (‘cat=1&showposts=2′) ID e número de posts
<?php $feature_post = get_posts('cat=1&showposts=2'); ?> <?php if( $feature_post ) : ?> <div id="news-post-home"> <?php foreach( $feature_post as $post ) : setup_postdata( $post ); ?> <?php $feature_post_id = $post->ID; ?> <h1> <a title="<?php the_title() ?>" href="<?php the_permalink() ?>" rel="bookmark"><?php the_title() ?></a></h1> <div class="conteudo"> <p><?php the_content(); ?></p> </div> <?php endforeach; ?> </div> <?php endif; ?>2ª Utilizando query_posts e um simples loop
<?php query_posts('cat=4'); //Unicamente os posts da categoria com ID (4) ?> //você também pode utilizar ('category_name=Nome da Categoria') <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <p><?php the_content(); ?></p> <?php endwhile; endif; ?> <?php wp_reset_query(); ?>É basicamente isso
qualquer coisa da um toque, abraço!
22 de fevereiro de 2011
por Manoel Filho
Olá, Anderson.
Primeiramente, meus parabéns por ser tão didático em tua explicação.
Cara, preciso fazer um query que busque os posts de determinada categoria, menos os três primeiros. Isso é possível? Abraço
17 de abril de 2011
por Anderson
Olá Manoel, eu não entendi muito bem, porem é simples fazer ela puxar apenas 3 posts, agora não os 3 últimos? Oo
18 de abril de 2011
por Rodrigo
Estou querendo apenas que em todas as buscas e/ou categorias o numero de post seja 30. Só isso.
Não estou conseguindo colocar esse query, e aonde devo colocar?
Archives, Header???
9 de maio de 2011
por Anderson
Olá Rodrigo, se seu blog for bem estruturado, seria simples acessar o painel, ir em Configurações, ems eguida Leitura alterar a opção “As páginas do blog mostram no máximo” para 30. Se utiliza query_post, todos os loops que puxam os posts terão que ter a tag “showposts” junto, exemplo:
query_posts('showposts=30');12 de maio de 2011
por Natan Rocha
Legal seu tutorial, queria muito que me ajudasse tô com um baita problema.
É que na category.php tenho a sidebar.php inserida ela entende? e na sidebar eu quero mostrar os posts mais recentes saka? ai quando eu vou determinar a “query_post” pra botar o parameto “showposts” pra exibir apenas 5 posts na sidebar, ai é onda arrebenta tudo, exibe os cinco posts na sidebar, mais ai os posts da category.php que é onde a siderbar ta inserida eles exibe tbm 5 post sendo que para os posts da category eu derterminei que aprecece 10. como faço pra exibir os posts mais recentes na sidebar, determinando apenas 5 posts sem dar conflito com a category? por favor me ajudar ai cara, tenho que entrar esse projeto urgente.
segue ai o codigo da category.php
<a href="”>
<a href="” class=”titulo-post-um-category-seis”>
e segue ai o codigo da sidebar.php:
Recentes
<a href="”>
<a href="”>
Valew man me ajuda ai cara. posta o codigo no jeito ai pra min. vlw abçs
1 de março de 2012
por Anderson
E ai Natan, terias como mostrar para mim seu blog/site com esse erro? Vendo seria mais facil de tentar descobrir o que ocorre…
4 de março de 2012
Trackback: [...] Ordenando pelos views Teremos que dar uma modificada em nosso loop normal ...