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ů:
[code lang=“php“]<?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();
?>
[/code]
Zobrazení nejnovějších příspěvků z kategorie novinky:
[code lang=“php“]<?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();
?>
[/code]
Zobrazení příspěvků od určitého autora:
[code lang=“php“]<?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();
?>
[/code]
Zobrazení příspěvků s určitými štítky:
[code lang=“php“]<?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();
?>
[/code]