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
- relation
- 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