17 de mar. de 2017

Função get posts Wordpress - Exemplos de usos, parâmetros e retorno.

Uma das funções mais importantes e muito utilizada no desenvolvimento com o Wordpress é a função get_posts(). Por padrão, o ele salva na tabela wp_posts do banco de dados todas as páginas, posts, mídias e qualquer outro post_type. É nesse ponto que entra a função get posts, com ela é possível retornar qualquer item que esteja salvo nessa tabela. Por exemplo, para retornar a lista de todas as páginas, podemos usar o parâmetro "page", dentro da função. Nesse posts explicaremos mais detalhadamente o uso da função.

Uso da função

Veja abaixo, exemplos para o uso do get_posts().

Como você pode ver, é passado um parâmetro chamado "$args", dentro da função. Essa variável, é um array composto com vários outros parâmetros utilizados para filtrar os itens retornados.

 <?php
 $args = array (
    'posts_per_page'   => 5,
    'offset'           => 0,
    'category'         => '',
    'category_name'    => '',
    'orderby'          => 'date',
    'order'            => 'DESC',
    'include'          => '',
    'exclude'          => '',
    'meta_key'         => '',
    'meta_value'       => '',
    'post_type'        => 'post',
    'post_mime_type'   => '',
    'post_parent'      => '',
    'author'       => '',
    'author_name'       => '',
    'post_status'      => 'publish',
    'suppress_filters' => true
 );
 $posts = get_posts($ args);
?>


<?php
global $post;
$args = array( 'posts_per_page' => 5, 'offset'=> 1, 'category' => 1 );
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
 <li>
  <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
 </li>
<?php endforeach; 
wp_reset_postdata();
?>
 

Parâmetros da função get_posts()

order:  Use o valor "ASC" para ordem crescente e "DESC" para ordem decrescente. Associe esse parâmetro ao próximo.

orderby: Classifica a ordem de retorno dos posts. A configuração padrão é a ordem alfabética pelo título do item.

Valores para o parâmetro orderby:
  • id - Ordem pelo ID
  • author - Ordem por autor.
  • title - Ordem por título.
  • date - Ordem por data.
  • modified - Ordem pela data da última modificação.
  • parent - Ordem pela página pai. Deve ser passado o ID da página.
  • rand - Ordem aleatória.
  • comment_count - Ordem pelo número de comentários.
  • menu_order - Ordena pelo campo "Order" na caixa "Edit Page Attributes", mas pode ser usado para qualquer tipo de postagem com valores para 'menu_order'. 
  • meta_key - Você pode passar o nome de algum campo personalizado e utilizar os dois próximos parâmetros para ordenar por esse campo.
  • meta_value - Aqui você pode definir um valor específico para o campo "meta_key".
  • meta_value_num - Ordena o campo passado em "meta_key" por ordem numérica.

posts_per_page: Quantidade de posts retornados para cada página, deve ser usado junto com o parâmetro "page".

page: Número da página para os posts. Por exemplo, se você possuir 15 posts e o posts_per_page estiver definido em 5, na página 1 irá aparecer os 5 primeiros posts retornados, na página 2, os próximos 5 e assim por diante.

category: Você filtrar os posts pelo ID de determinada categoria.

category_name: Semelhante ao anterior, porém, aqui você passa o nome da categoria e não o ID.

include: Pode ser passado um Array de ID's dos posts para que eles seja incluídos no retorno

exclude:  Pode ser passado um Array de ID's dos posts para que eles seja excluídos do retorno

post_type: Defini o tipo de post que vai ser retornado. Tem o valor padrão 'post'. Ex: attachmentm, page etc.