Skip to content

WP_Query

janeiro 4, 2009

Comece aqui: http://codex.wordpress.org/Function_Reference/WP_Query

e aqui: http://br.forums.wordpress.org/

========================================================================================
========================================================================================

Post & Page Parameters

Retrieve a single post or page.

  • 'p' => 27 – use the post ID to show that post
  • 'name' => 'about-my-life' – query for a particular post that has this Post Slug
  • 'page_id' => 7 – query for just Page ID 7
  • 'pagename' => 'about' – note that this is not the page’s title, but the page’s path
  • 'posts_per_page' => 1 – use 'posts_per_page' => 3 to show 3 posts. Use 'posts_per_page' => -1 to show all posts
  • 'showposts' => 1 – use 'showposts' => 3 to show 3 posts. Use 'showposts' => -1 to show all posts. Deprecated in favor of posts_per_page
  • 'post__in' => array(5,12,2,14,7) – inclusion, lets you specify the post IDs to retrieve
  • 'post__not_in' => array(6,2,8) – exclusion, lets you specify the post IDs NOT to retrieve
  • 'post_type' => 'page' – returns Pages; defaults to value of post; can be any, attachment, page, post, or revision. any retrieves any type except revisions.
  • 'post_status' => 'publish' – returns publish works. Also could use pending, draft, future, private, trash. For inherit see get_children. Status of trash added with Version 2.9.
  • 'post_parent' => 93 – return just the child Pages of Page 93.
<?php $my_query = new WP_Query('category_name=Destaque&showposts=1');//Selecionada a categoria Destaque em category_name//
	while ($my_query->have_posts()) : $my_query->the_post();
	$do_not_duplicate = $post->ID; ?>
========================================================================================
========================================================================================

Multiplos Loops (http://xemele.cultura.gov.br/blog/2009/02/10/multiplos-loops/)

<?php $noticias = new  WP_Query("category_name=noticias&showposts=3"); ?>
 <?php if($noticias->have_posts()) : ?>
 <div>
 <?php while($noticias->have_posts()) : $noticias->the_post();  ?>
 trecho da interface a ser repetido…
 <?php endwhile; ?>
 </div>
 <?php endif; ?>
<?php $artigos = new  WP_Query(”category_name=artigosamp;showposts=3″); ?>
 <?php if($artigos->have_posts()) : ?>
 <div class=”artigos”>
 <?php while($artigos->have_posts()) : $artigos->the_post();  ?>
 trecho da interface a ser repetido…
 <?php endwhile; ?>
 </div>
 <?php endif; ?> 

Notem que utilizando o ‘WP_Query’, as funções ‘have_posts()’ e  ‘the_post()’ devem ser precedidas pelo objeto instanciado. Como  ‘$noticias’ e ‘$artigos’ do exemplo mostrado acima. 

Nesse exemplo eu também adicionei a condicional if para mostrar como  alterar a formatação dos posts das diferentes sessões. No programês: 

<?php $noticias =  consulte_posts("quantidade_de_posts=3 e categoria_de_nome=noticias");  ?>
 <?php  se(houverem_posts_em_noticias()) : ?>
 <div class=”noticias”>
 <?php enquanto(houverem_posts_em_noticias()) :  carregue_o_post_da_vez(); ?>
 trecho da interface a ser repetido…
 <?php verifique_se_ainda_há_posts; ?>
 </div>
 <?php fim_das_noticias; ?>

O importante é que tenham em mente que as tags abertas entre o ‘if’ e  o ‘while’ devem ser fechadas entre o ‘endwhile’ e o ‘endif’, ok.


Evitando posts repetidos (http://xemele.cultura.gov.br/blog/2009/01/27/evitando-posts-repetidos/)

<?php $usados = array(); ?>
<?php $noticias = new WP_Query("category_name=noticias&showposts=3"); ?>
<?php while($noticias->have_posts()) : $noticias->the_post(); ?>
 <?php array_push($useds, $post->ID); ?>
trecho da interface a ser repetido...
<?php endwhile; ?>
 
<?php $artigos = new WP_Query("category_name=artigosamp;showposts=3"); ?>
<?php while($artigos->have_posts()) : $artigos->the_post(); ?>
<?php if(in_array($post->ID, $usados)) continue; ?>
 <?php array_push($useds, $post->ID); ?>
trecho da interface a ser repetido...
<?php endwhile; ?>
Anúncios
No comments yet

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: