Query Loops je funkce v WordPressu, která vám umožňuje vyhledávat a zobrazovat specifický obsah na vašich stránkách. Můžete například vyhledat a zobrazit pouze příspěvky z určité kategorie, příspěvky s určitými štítky nebo příspěvky od určitého autora. Tuto funkci můžete použít na mnoha místech ve vašem tématu, jako jsou stránky kategorií, stránky štítků, autorské stránky nebo dokonce i na domovské stránce.
Několik výhod používání Querying Loop:
- Flexibilita: Querying Loop vám umožňuje přizpůsobit zobrazovaný obsah přesně podle vašich potřeb. Můžete například vyhledat pouze příspěvky s určitými štítky nebo kategoriemi.
- Snadné použití: Querying Loop je velmi snadné použít a implementovat do vašeho tématu. Stačí jen napsat několik řádků kódu a máte hotovo.
- Zlepšení rychlosti načítání stránek: Použitím Querying Loop můžete optimalizovat zobrazovaný obsah na vašich stránkách, což významně pomůže ke zlepšení rychlosti načítání.
Jaké argumenty se v Query Loops využívají?
Argumenty pro Query Loops jsou parametry, které se používají k definování, jaké příspěvky se mají zobrazit pomocí funkce WP_Query
v WordPressu. Tyto argumenty se používají k určení typu příspěvků, které se mají zobrazit, počtu příspěvků, které se mají zobrazit, řazení příspěvků atd. S použitím argumentů můžete nastavit velmi přesné podmínky pro zobrazování příspěvků na vašem webu.
post_type
: Určuje typ příspěvků, které se mají zobrazit. Může být nastaven na standardní typ příspěvkůpost
, stránkypage
nebo na jiný typ příspěvků, který byl vytvořen pomocí funkceregister_post_type()
.posts_per_page
: Určuje počet příspěvků, které se mají zobrazit na jedné stránce.offset
: Určuje počet příspěvků, které se mají přeskočit před zobrazením.category_name
: Určuje kategorii, ve které se mají hledat příspěvky.tag
: Určuje štítek, podle kterého se mají hledat příspěvky.orderby
: Určuje, jakým způsobem se mají příspěvky třídit. Může být nastaven naID
,author
,title
,name
,date
,modified
,parent
,rand
,comment_count
,menu_order
.order
: Určuje směr, v jakém se mají příspěvky třídit. Může být nastaven naASC
neboDESC
.post_status
: Určuje stav příspěvků, které se mají zobrazit. Může být nastaven napublish
,pending
,draft
,auto-draft
,future
,private
,inherit
,trash
.
Jedná se jen o výběr nejpoužívanějších, další můžete najít v kodexu.
Příklad použití Query Loops
Zobrazení posledních 5 příspěvků:
<?php $args = array( 'posts_per_page' => 5 ); $query = new WP_Query( $args ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); ?> <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <p><?php the_excerpt(); ?></p> <?php } } else { echo 'Žádné příspěvky nebyly nalezeny.'; } wp_reset_postdata(); ?>
Zobrazení nejnovějších příspěvků z kategorie novinky:
<?php $args = array( 'posts_per_page' => 5, 'category_name' => 'novinky', 'order' => 'DESC' ); $query = new WP_Query( $args ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); ?> <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <p>Publikováno: <?php the_date(); ?></p> <p><?php the_excerpt(); ?></p> <?php } } else { echo 'Žádné příspěvky v kategorii Novinky nebyly nalezeny.'; } wp_reset_postdata(); ?>
Zobrazení příspěvků od určitého autora:
<?php $args = array( 'author' => 1, 'posts_per_page' => 10 ); $query = new WP_Query( $args ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); ?> <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <p>Publikováno: <?php the_date(); ?></p> <p><?php the_excerpt(); ?></p> <?php } } else { echo 'Žádné příspěvky od tohoto autora nebyly nalezeny.'; } wp_reset_postdata(); ?>
Zobrazení příspěvků s určitými štítky:
<?php $args = array( 'tag' => 'fotografie, cestování', 'posts_per_page' => 15 ); $query = new WP_Query( $args ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); ?> <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <p>Štítky: <?php the_tags(); ?></p> <p><?php the_excerpt(); ?></p> <?php } } else { echo 'Žádné příspěvky s těmito štítky nebyly nalezeny.'; } wp_reset_postdata(); ?>