Funkce get_posts - Affinite.io CZ

Funkce get_posts, je jedna z hojně využívaných funkcí, pro vytváření loopů (smyček) s výpisem článků. Můžete tak vypsat například poslední články, nebo články, dle zadaných argumentů.

Funkce get_posts se může na první pohled jevit jako podobná funkci get_pages, ale na rozdíl od ní, nepřistupuje přímo do databáze. Namísto toho, využívá WP_Query a každým zavoláním get_posts, tak vytvoříte novou instanci objektu. Díky tomu tak můžete na stránce vytvořit více loopů – výpisů článků, dle různých parametrů. Pokud tedy na hlavní straně šablony vidíte různé výpisy posledních článků, článků od autora, nebo kategorie, můžete toho dosáhnout právě použitím get_posts. WP_Query používá také query_posts, ale nedoporučuje se používat, pokud nechcete ovlivnit hlavní loop na stránce. Pokud chcete ovlivnit hlavní výpis, použijte pro to hook pre_get_posts.

Použití get_posts

$posts_array = get_posts( $args );

Několik příkladů použití

Výpis článků od jednoho autora:

$query = get_posts( 'author_name=rami' );

Výpis článků z jedné kategorie podle id, nebo slug:

$query = get_posts( 'cat=4' );
$query = get_posts( 'category_name=staff' );

Výpis článků podle štítků:

$query = get_posts( 'tag=bread,baking' );

Výpis článků podle taxonomie:

$args = array(
	'post_type' => 'post',
	'people' => 'bob'
);
$query = get_posts( $args );

Výpis článků pro custom post type „recepty“:

$query = get_posts( 'post_type=recepty' );

V praxi se většinou s takto jednoduchými dotazy nesetkáte, často se budou argumenty kombinovat a tak je běžnější podobný kód:

$args_search = array(
    	'post_type' => array( 'telefony' ),
        'posts_per_page' => -1,
        'meta_key' => 'vybaveni',
        'orderby' => 'meta_value_num',
        'order' => 'ASC'
    );

$wp_query = get_posts( $args_search );

Vzhledem k tomu, že argumenty i použití je velmi podobné WP_Query, můžete stejné kódy použít i takto:

$query = new WP_Query( 'tag=bread,baking' );

Pomocí get_posts si tak můžete výpis článků upravit k obrazu svému, jen se musíte rozhodnout, zda není použití zbytečné. Pro custom post type a jejich taxonomie, má WordPress definovány soubory, sloužící pro jejich výpis.

Seznam argumentů

  • author
  • author_name
  • author__in
  • author__not_in
  • cat
  • category_name
  • category__and
  • category__in
  • category__not_in
  • tag
  • tag_id
  • tag__and
  • tag__in
  • tag__not_in
  • tag_slug__and
  • tag_slug__in
  • {tax}
  • tax_query
    • relation
      • taxonomy
      • field
      • terms
      • include_children
      • operator
  • s
  • p
  • name
  • page_id
  • pagename
  • post_parent
  • post_parent__in
  • post_parent__not_in
  • post__in
  • post__not_in
  • has_password
  • post_password
  • post_type
    • post
    • page
    • revision
    • attachment
    • any
    • „Custom Post Types“
  • post_status
    • publish
    • pending
    • draft
    • auto-draft
    • future
    • private
    • inherit
    • trash
    • any
  • nopaging
  • posts_per_page
  • posts_per_archive_page
  • offset
  • paged
  • page
  • ignore_sticky_posts
  • order
    • ASC
    • DESC
  • orderby
    • none
    • ID
    • author
    • title
    • name
    • date
    • modified
    • parent
    • rand
    • comment_count
    • menu_order
    • meta_value
    • meta_value_num
    • post__in
  • year
  • monthnum
  • w
  • day
  • hour
  • minute
  • second
  • m
  • date_query
    • year
    • month
    • week
    • day
    • hour
    • minute
    • second
    • after
      • year
      • month
      • day
    • before
      • year
      • month
      • day
    • inclusive
    • compare
    • column
    • relation
  • meta_key
  • meta_value
  • meta_value_num
  • meta_compare
  • meta_query
    • relation
    • key
    • value
    • compare
    • type
  • perm
  • cache_results
  • update_post_meta_cache
  • update_post_term_cache
Sledujte činnost uživatelů pomocí Activity Log
Sledujte činnost uživatelů pomocí Activity Log
05 Kvě, 2014
Obrázkový kód pro přihlášení administrátora
Obrázkový kód pro přihlášení administrátora
30 Kvě, 2014

Looking for something?