query_posts() – Aprenda a personalizar seu blog WordPress
Postado por: Pedro Rogério emquery_posts() é uma das funções chave do 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
Exemplo
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“);















Muito útil. Acaba de salvar minha vida. =)
Excelente artigo, parabéns!
Obrigado! .-)
Massa! Podemos personalizar as diferentes páginas do WordPress… eu me perguntava como fazer isso…
Seu blog é muito útil, cara. Parabéns pelo trabalho =D
Olá Amigo blogueiro,
Estou procurando na net. Algum esquema de fazer aparecer os últimos post do meu blog, na página inicial do meu portal.
Vou explicar:
http://www.oskaras.com/blog/
Portal
http://www.oskaras.com/index.php
Gostaria que aparecesse tudo que aparece no centro do blog na pagina inicial, mais isso dentro da página inicial do meu portal. Estou a procura mais tá dificil….
msn pj7000@gmail.com
orkut http://www.orkut.com.br/Profile.aspx?uid=16288275905244235351
Valeu mesmo !!! Me ajudou muito.
Po, meu , excelente post.
Poderia adicionar uma informação, e responder a minha duvida ao mesmo tempo,
é possivel determinar a categoria a ser pesquisada, usando o $_GET ?
Abraço
Não existe um parâmetro para eu pesquisar os “slugs” das categorias?
Respondendo a minha própria pergunta: category_name já faz pesquisa os “slugs” também. :)
O grande problema de query_posts() é que ele NÃO pode ser usado mais de uma vez no mesmo template.
Se você quizer, por exemplo, usar query_posts() para mostrar só posts de uma categoria, e depois dentro deste MESMO template você adiciona uma condicional tipo is_home() por exemplo com o intuito de passar outras condicionais para query_posts() … ISSO NÃO FUNCIONA!
Olá pessoal, existiria um modo, de eu usar a query para pegar subpaginas de uma determinada página? Assim como fazemos para pegar todos os posts de determinada categoria, queria fazer para pegar todas subpaginas de determinada pagina
Abs
Podia falar um puco desse parametro OFFSET?
Valeu , muito bom o site !
[...] saber mais sobre o método Query_posts, acesse: http://www.pinceladasdaweb.com.br/blog/2008/03/14/query_posts-aprenda-a-personalizar-seu-blog-wordpr... [...]