Használat
Szabványos hurok
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?php// The Query$the_query = new WP_Query( $args );// The Loopif ( $the_query->have_posts() ) { echo '<ul>'; while ( $the_query->have_posts() ) { $the_query->the_post(); echo '<li>' . get_the_title() . '</li>'; } echo '</ul>';} else { // no posts found}/* Restore original Post Data */wp_reset_postdata(); |
Normál hurok (alternatív)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?php // the query$the_query = new WP_Query( $args ); ?><?php if ( $the_query->have_posts() ) : ?> <!-- pagination here --> <!-- the loop --> <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <h2><?php the_title(); ?></h2> <?php endwhile; ?> <!-- end of the loop --> <!-- pagination here --> <?php wp_reset_postdata(); ?><?php else : ?> <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p><?php endif; ?> |
Több hurok
Ha több lekérdezése van, több ciklust kell végrehajtania. Mint így…
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
<?php// The Query$query1 = new WP_Query( $args );// The Loopwhile ( $query1->have_posts() ) { $query1->the_post(); echo '<li>' . get_the_title() . '</li>';}/* Restore original Post Data * NB: Because we are using new WP_Query we aren't stomping on the * original $wp_query and it does not need to be reset with * wp_reset_query(). We just need to set the post data back up with * wp_reset_postdata(). */wp_reset_postdata();/* The 2nd Query (without global var) */$query2 = new WP_Query( $args2 );// The 2nd Loopwhile ( $query2->have_posts() ) { $query2->the_post(); echo '<li>' . get_the_title( $query2->post->ID ) . '</li>';}// Restore original Post Datawp_reset_postdata();?> |
Tulajdonságok és módszerek
Ez a hivatalos dokumentációja WP_Query. Ne módosítsa közvetlenül a tulajdonságokat, hanem használja a metódusokat (lásd az alábbi metóduslistát) a velük való interakcióhoz.
Tulajdonságok
$query
$wp_queryA WP osztály által az objektumnak átadott lekérdezési karakterláncot tartalmazza.$query_vars
Egy asszociatív tömb, amely tartalmazza a dissected$query: a lekérdezési változók és a hozzájuk tartozó értékek tömbjét.$queried_object
Akkor alkalmazható, ha a kérelem kategória, szerző, állandó hivatkozás vagy oldal. Információkat tárol a kért kategóriáról, szerzőről, bejegyzésről vagy oldalról.$queried_object_id
Ha a kérelem kategória, szerző, állandó hivatkozás vagy bejegyzés/oldal, akkor a megfelelő azonosítóval rendelkezik.$posts
Megtelik az adatbázisból a kért bejegyzésekkel.$post_count
A megjelenített bejegyzések száma.$found_posts
Az aktuális lekérdezési paramétereknek megfelelő bejegyzések teljes száma$max_num_pages
Az oldalak teljes száma. A $found_posts / $posts_per_page eredménye$current_post
(A hurok alatt elérhető) Az éppen megjelenített bejegyzés indexe.$post
(A hurok alatt elérhető) Az éppen megjelenített bejegyzés.$is_single,$is_page,$is_archive,$is_preview,$is_date,$is_year,$is_month,$is_time,$is_author,$is_category,$is_tag,$is_tax,$is_search,$is_feed,$is_comment_feed,$is_trackback,$is_home,$is_404,$is_comments_popup,$is_admin,$is_attachment,$is_singular,$is_robots, Boole-ok határozzák meg$is_posts_page,$is_paged
hogy milyen típusú kérésről van szó. Például az első három a következőt jelöli: „ez egy állandó hivatkozás?”, „Ez egy oldal?”, „Ez bármilyen típusú archív oldal?”. Lásd még Feltételes címkék .
Paraméterek
Szerző paraméterei
Egy bizonyos szerzőhöz kapcsolódó bejegyzések megjelenítése.
author( int ) – szerzői azonosító használata.author_name( string ) – ‘user_nicename‘ használata – NEM név.author__in( tömb ) – szerzői azonosító használata (a 3.7-es verzió óta elérhető).author__not_in( tömb ) – szerzői azonosító használata (a 3.7-es verzió óta elérhető).
Egy szerző bejegyzéseinek megjelenítése
Bejegyzések megjelenítése szerző szerint, szerzői azonosítóval:
|
1
|
$query = new WP_Query( array( 'author' => 123 ) ); |
Bejegyzések megjelenítése szerző szerint, a szerző használatával user_nicename:
|
1
|
$query = new WP_Query( array( 'author_name' => 'rami' ) ); |
Több szerző bejegyzéseinek megjelenítése
Több konkrét szerző bejegyzéseinek megjelenítése:
|
1
|
$query = new WP_Query( array( 'author' => '2,6,17,38' ) ); |
A szerzőhöz tartozó bejegyzések kizárása
Jelenítse meg az összes bejegyzést , kivéve a szerzőtől (egyes számban) származó bejegyzéseket úgy, hogy az azonosítóját egy „-” (mínusz) jellel rögzíti:
|
1
|
$query = new WP_Query( array( 'author' => -12 ) ); |
Több szerző kezelése
Több szerző bejegyzéseinek megjelenítése:
|
1
|
$query = new WP_Query( array( 'author__in' => array( 2, 6 ) ) ); |
Több szerzőt is kizárhat a következő módon:
|
1
|
$query = new WP_Query( array( 'author__not_in' => array( 2, 6 ) ) ); |
Kategória paraméterei
Bizonyos kategóriákhoz kapcsolódó bejegyzések megjelenítése.
cat( int ) – használati kategória azonosítója.category_name( string ) – slug kategória használata.category__and( tömb ) – kategóriaazonosító használata.category__in( tömb ) – kategóriaazonosító használata.category__not_in( tömb ) – kategóriaazonosító használata.
Az egy kategóriával rendelkező bejegyzések megjelenítése (és ennek a kategóriának az összes alárendelt része) a kategóriaazonosítóval:
|
1
|
$query = new WP_Query( array( 'cat' => 4 ) ); |
Az ehhez a kategóriához tartozó bejegyzések megjelenítése (és ennek a kategóriának az összes alárendelt része) a kategória slug használatával:
|
1
|
$query = new WP_Query( array( 'category_name' => 'staff' ) ); |
Az ehhez a kategóriához tartozó bejegyzések megjelenítése (nem ennek a kategóriának a gyermekei), a kategóriaazonosító használatával:
|
1
|
$query = new WP_Query( array( 'category__in' => 4 ) ); |
Több kategóriájú bejegyzések megjelenítése kategóriaazonosítóval:
|
1
|
$query = new WP_Query( array( 'cat' => '2,6,17,38' ) ); |
Az alábbi kategóriákkal rendelkező bejegyzések megjelenítése a kategóriacsiga használatával:
|
1
|
$query = new WP_Query( array( 'category_name' => 'staff,news' ) ); |
Azon bejegyzések megjelenítése, amelyekben az alábbi kategóriák mindegyike megtalálható:
|
1
|
$query = new WP_Query( array( 'category_name' => 'staff+news' ) ); |
Jelenítse meg az összes bejegyzést , kivéve egy kategória bejegyzéseit úgy, hogy az azonosítóját egy „-” (mínusz) jellel rögzíti.
|
1
|
$query = new WP_Query( array( 'cat' => '-12,-34,-56' ) ); |
Több kategóriába tartozó bejegyzések megjelenítése. Ez a 2. és 6. kategóriába tartozó bejegyzéseket jeleníti meg:
|
1
|
$query = new WP_Query( array( 'category__and' => array( 2, 6 ) ) ); |
A 2. VAGY 6. kategóriába tartozó bejegyzések megjelenítéséhez használhatja cata fent említett módon, vagy a category__inkövetkezőt (megjegyzendő, hogy ez nem jeleníti meg az e kategóriák alá tartozó bejegyzéseket):
|
1
|
$query = new WP_Query( array( 'category__in' => array( 2, 6 ) ) ); |
Több kategóriát is kizárhat a következő módon:
|
1
|
$query = new WP_Query( array( 'category__not_in' => array( 2, 6 ) ) ); |
Címke paraméterei
Bizonyos címkékkel társított bejegyzések megjelenítése.
tag( string ) – használja a slug címkét.tag_id( int ) – használjon azonosítót.tag__and( array ) – használjon címkeazonosítókat.tag__in( array ) – használjon címkeazonosítókat.tag__not_in( array ) – használjon címkeazonosítókat.tag_slug__and( tömb ) – használjon tag slugs.tag_slug__in( tömb ) – használjon tag slugs.
Az egy címkével rendelkező bejegyzések megjelenítése a tag slug használatával:
|
1
|
$query = new WP_Query( array( 'tag' => 'cooking' ) ); |
Az ezzel a címkével rendelkező bejegyzések megjelenítése a címkeazonosító használatával:
|
1
|
$query = new WP_Query( array( 'tag_id' => 13 ) ); |
Azok a bejegyzések megjelenítése, amelyek a következő címkék egyikét tartalmazzák:
|
1
|
$query = new WP_Query( array( 'tag' => 'bread,baking' ) ); |
Azon bejegyzések megjelenítése, amelyeknél az összes ilyen címkét megtalálják:
|
1
|
$query = new WP_Query( array( 'tag' => 'bread+baking+recipe' ) ); |
A 37-es és a 47-es címkeazonosítóval is megcímkézett bejegyzések megjelenítése:
|
1
|
$query = new WP_Query( array( 'tag__and' => array( 37, 47 ) ) ); |
A 37-es vagy 47-es azonosítójú bejegyzések megjelenítéséhez használhatja taga fent említett módon, vagy kifejezetten megadhatja a tag__inkövetkezőt:
|
1
|
$query = new WP_Query( array( 'tag__in' => array( 37, 47 ) ) ); |
Olyan bejegyzések megjelenítése, amelyek nem rendelkeznek a 37-es és 47-es címkeazonosítókkal:
|
1
|
$query = new WP_Query( array( 'tag__not_in' => array( 37, 47 ) ) ); |
A tag_slug__inés tag_slug__andnagyjából ugyanúgy viselkednek, kivéve, hogy illeszkednek a címke csigájához.
Taxonómiai paraméterek
Bizonyos taxonómiához kapcsolódó bejegyzések megjelenítése.
{tax}( string ) – taxonómia slug használata. ( Elavult a 3.1-es verzió óta, a(z) ” ” javáratax_query).tax_query( tömb ) – taxonómiai paraméterek használata (a 3.1-es verzió óta elérhető).relation( string ) – Az egyes belső taxonómiatömbök közötti logikai kapcsolat, ha egynél több van. A lehetséges értékek az ‘ÉS’, ‘VAGY’. Ne használja egyetlen belső taxonómiatömbhöz.taxonomy( string ) – Taxonómia.field( karakterlánc ) – A taxonómia kifejezés kiválasztása a következő alapján: A lehetséges értékek a következők: ‘term_id’, ‘name’, ‘slug’ vagy ‘term_taxonomy_id’. Az alapértelmezett érték a „term_id”.terms( int/string/array ) – Taxonómiai kifejezés(ek).include_children( logikai ) – Be kell-e venni a gyerekeket a hierarchikus taxonómiákba. Alapértelmezés szerint igaz.operator( string ) – A tesztelendő operátor. A lehetséges értékek a következők: ‘IN’, ‘NOT IN’, ‘AND’, ‘EXISTS’ és ‘NOT EXISTS’. Az alapértelmezett érték ‘IN’.
Fontos megjegyzés: adólekérdezési argumentumok tömbjéttax_query veszi (egy tömböt vesz igénybe). Ez a konstrukció lehetővé teszi több taxonómia lekérdezését az első (külső) tömb paraméterének használatával a taxonómiatömbök közötti logikai kapcsolat leírására.
relation
Egyszerű taxonómiai lekérdezés:
Bob címkével ellátott bejegyzések megjelenítése az emberek egyéni taxonómiája alatt:
|
1
2
3
4
5
6
7
8
9
10
11
|
$args = array( 'post_type' => 'post', 'tax_query' => array( array( 'taxonomy' => 'people', 'field' => 'slug', 'terms' => 'bob', ), ),);$query = new WP_Query( $args ); |
Több taxonómia kezelése:
Több egyéni taxonómiából származó bejegyzések megjelenítése :
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
$args = array( 'post_type' => 'post', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'movie_genre', 'field' => 'slug', 'terms' => array( 'action', 'comedy' ), ), array( 'taxonomy' => 'actor', 'field' => 'term_id', 'terms' => array( 103, 115, 206 ), 'operator' => 'NOT IN', ), ),);$query = new WP_Query( $args ); |
Az idézetek kategóriába tartozó bejegyzések megjelenítése VAGY az idézet bejegyzés formátuma:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$args = array( 'post_type' => 'post', 'tax_query' => array( 'relation' => 'OR', array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => array( 'quotes' ), ), array( 'taxonomy' => 'post_format', 'field' => 'slug', 'terms' => array( 'post-format-quote' ), ), ),);$query = new WP_Query( $args ); |
Beágyazott taxonómia kezelése:
A 'tax_query'záradékok egymásba ágyazhatók, így bonyolultabb lekérdezéseket hozhat létre. Példa: Jelenítse meg azokat a bejegyzéseket , amelyek az idézetek kategóriába tartoznak, VAGY mindkettő az idézet formátuma ÉS a bölcsesség kategóriában található:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
$args = array( 'post_type' => 'post', 'tax_query' => array( 'relation' => 'OR', array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => array( 'quotes' ), ), array( 'relation' => 'AND', array( 'taxonomy' => 'post_format', 'field' => 'slug', 'terms' => array( 'post-format-quote' ), ), array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => array( 'wisdom' ), ), ), ),);$query = new WP_Query( $args ); |
Keresési paraméterek
Bejegyzések megjelenítése kulcsszókeresés alapján.
s( string ) – Keresési kulcsszó.
Bejegyzések megjelenítése kulcsszókeresés alapján
|
1
|
$query = new WP_Query( array( 's' => 'keyword' ) ); |
Ha egy kifejezés elé kötőjelet ír, az kizárja az adott kifejezésnek megfelelő bejegyzéseket. Pl. 'pillow -sofa'a „párna” szót tartalmazó bejegyzéseket adja vissza, de a „szófa” szót nem (a 4.4-es verzió óta elérhető).
Hozzászólás és oldal paraméterei
Tartalom megjelenítése bejegyzés és oldal paraméterei alapján. Ne feledje, hogy az alapértelmezett post_typebeállítás csak a bejegyzések megjelenítésére van beállítva, az oldalak nem.
p( int ) – post id használata.name( string ) – post slug használata.page_id( int ) – oldalazonosító használata.pagename( string ) – használja a page slug-ot.post_parent( int ) – használja az oldalazonosítót, ha csak az alárendelt oldalakat szeretné visszaadni. Állítsa 0-ra, ha csak a legfelső szintű bejegyzéseket szeretné visszaadni.post_parent__in( array ) – post ids használata. Adja meg azokat a bejegyzéseket, amelyek szülője egy tömbben található. (3.6-os verzió óta elérhető)post_parent__not_in( array ) – post ids használata. Adja meg azokat a bejegyzéseket, amelyek szülője nem szerepel egy tömbben. (3.6-os verzió óta elérhető)post__in( tömb ) – post ids használata. Adja meg a letöltendő bejegyzéseket. FIGYELEM Ha ragadós bejegyzéseket használsz, akkor azok belekerülnek (előbe!) a letöltött bejegyzésekbe, akár akarod, akár nem. Ennek a viselkedésnek a visszaszorításához használja aignore_sticky_posts.post__not_in( tömb ) – post ids használata. Adja meg a NEM letöltendő bejegyzést.post_name__in( array ) – post slugs használata. Adja meg a letöltendő bejegyzéseket. (A 4.4-es verzióban lesz elérhető)
MEGJEGYZÉS: Ticket #28099 : Ha egy üres tömböt adunk át, az igazként post__infog visszaadni has_posts()(és az összes bejegyzést visszaküldi). Logikát kell használni annak meghatározására, hogy WP_Querykell-e használni, ha a tömb, amelynek átadják, post__inüres.
Bejegyzés megjelenítése azonosító szerint:
|
1
|
$query = new WP_Query( array( 'p' => 7 ) ); |
Oldal megjelenítése azonosító szerint:
|
1
|
$query = new WP_Query( array( 'page_id' => 7 ) ); |
Bejegyzés/oldal megjelenítése csiga szerint
|
1
|
$query = new WP_Query( array( 'name' => 'about-my-life' ) ); |
Oldal megjelenítése a következő szerint slug:
|
1
|
$query = new WP_Query( array( 'pagename' => 'contact' ) ); |
Az alárendelt oldal megjelenítése a szülő és az alárendelt oldal slugjával, perjellel elválasztva (pl. „parent_slug/child_slug”):
|
1
|
$query = new WP_Query( array( 'pagename' => 'contact_us/canada' ) ); |
Gyermekoldalak megjelenítése szülőoldal-azonosítóval:
|
1
|
$query = new WP_Query( array( 'post_parent' => 93 ) ); |
Csak a legfelső szintű oldalak megjelenítése, az összes alárendelt oldal kizárása:
|
1
|
$query = new WP_Query( array( 'post_parent' => 0 ) ); |
Olyan bejegyzések megjelenítése, amelyek szülője egy tömbben található:
|
1
|
$query = new WP_Query( array( 'post_parent__in' => array( 2, 5, 12, 14, 20 ) ) ); |
Csak az adott bejegyzések megjelenítése:
|
1
|
$query = new WP_Query( array( 'post_type' => 'page', 'post__in' => array( 2, 5, 12, 14, 20 ) ) ); |
Az összes bejegyzés megjelenítése, de a megadottak NEM:
|
1
|
$query = new WP_Query( array( 'post_type' => 'post', 'post__not_in' => array( 2, 5, 12, 14, 20 ) ) ); |
Megjegyzés: nem kombinálhatja post__inés post__not_inugyanabban a lekérdezésben.
Vegye figyelembe azt is, hogy a vesszővel elválasztott listát tartalmazó karakterlánc használata itt nem működik. Ha változót ad át, győződjön meg arról, hogy az egész értékek megfelelő tömbje:
|
1
2
3
4
5
6
7
|
// This will NOT work$exclude_ids = '1,2,3';$query = new WP_Query( array( 'post__not_in' => array( $exclude_ids ) ) );// This WILL work$exclude_ids = array( 1, 2, 3 );$query = new WP_Query( array( 'post__not_in' => $exclude_ids ) ); |
Jelszó paraméterek
Tartalom megjelenítése bejegyzés és oldal paraméterei alapján. Ne feledje, hogy az alapértelmezett post_typebeállítás csak a bejegyzések megjelenítésére van beállítva, az oldalak nem.
has_password( bool ) – igaz a jelszavas bejegyzésekre; false a jelszavak nélküli bejegyzésekhez ; null minden bejegyzéshez jelszóval és jelszó nélkül (elérhető a 3.9-es verziótól).post_password( karakterlánc ) – adott jelszóval ellátott bejegyzések megjelenítése (a 3.9-es verzió óta elérhető)
Csak jelszóval védett bejegyzések megjelenítése:
|
1
|
$query = new WP_Query( array( 'has_password' => true ) ); |
Csak a jelszavak nélküli bejegyzések megjelenítése:
|
1
|
$query = new WP_Query( array( 'has_password' => false ) ); |
Csak a jelszavas és jelszó nélküli bejegyzések megjelenítése:
|
1
|
$query = new WP_Query( array( 'has_password' => null ) ); |
Bejegyzések megjelenítése egy adott jelszóval:
|
1
|
$query = new WP_Query( array( 'post_password' => 'zxcvbn' ) ); |
Hozzászólás típusának paraméterei
Bizonyos típusú bejegyzések megjelenítése .
post_type( string / tömb ) – használjon bejegyzéstípusokat. A bejegyzéseket bejegyzéstípusok szerint kéri le, az alapértelmezett érték: ”post„. Hatax_queryegy lekérdezéshez ” ” van beállítva, az alapértelmezett érték ”any” lesz;- ‘
post‘ – egy bejegyzés. - ‘
page‘ – egy oldal. - ‘
revision‘ – átdolgozás. - ‘
attachment‘ – egy melléklet. Míg az alapértelmezett WP_Querypost_statusa „közzététel”, a mellékletek alapértelmezettpost_statusértéke „örököl”. Ez azt jelenti, hogy nem küldenek vissza mellékleteket, hacsak nem állítja be kifejezettenpost_statusaz „örököl” vagy „bármely” értéket. Lásd alább az Állapotparaméterek részt. - ‘
nav_menu_item‘ – egy navigációs menüelem - ‘
any‘ – bármilyen típust lekér, kivéve azokat a változatokat és típusokat, amelyeknél az ‘exclude_from_search’ értéke igaz.
** Egyéni bejegyzéstípusok (pl. filmek)
- ‘
Csak oldalak megjelenítése:
|
1
|
$query = new WP_Query( array( 'post_type' => 'page' ) ); |
” ” bejegyzéstípus megjelenítése any(bármilyen típust lekér, kivéve azokat a változatokat és típusokat, amelyeknél az „exclude_from_search” értéke IGAZ):
|
1
|
$query = new WP_Query( array( 'post_type' => 'any' ) ); |
Több bejegyzéstípus megjelenítése, beleértve az egyéni bejegyzéstípusokat is:
|
1
2
3
4
|
$args = array( 'post_type' => array( 'post', 'page', 'movie', 'book' ));$query = new WP_Query( $args ); |
Állapot paraméterek
Bizonyos bejegyzésállapotokhoz tartozó bejegyzések megjelenítése .
post_status( string / tömb ) – post status használata. Lekéri a bejegyzéseket a bejegyzés állapota szerint. Az alapértelmezett érték „publish”, de ha a felhasználó bejelentkezett, a „private” hozzáadásra kerül. Alapértelmezés szerint a nyilvános egyéni bejegyzésállapotok is szerepelnek benne. És ha a lekérdezés adminisztrátori környezetben fut (adminisztrációs területen vagy AJAX-hívás), akkor a védett állapotok is hozzáadódnak. Alapértelmezés szerint a védett állapotok: ‘future‘, ‘draft‘ és ‘pending‘.- ‘
publish‘ – közzétett bejegyzés vagy oldal. - ‘
pending‘ – a bejegyzés ellenőrzésre vár. - ‘
draft‘ – vázlat állapotú bejegyzés. - ”
auto-draft” – egy újonnan létrehozott bejegyzés, tartalom nélkül. - ‘
future‘ – a jövőben közzéteendő bejegyzés. - ‘
private‘ – nem látható azon felhasználók számára, akik nincsenek bejelentkezve. - ‘
inherit‘ – átdolgozás. lásd get_childs() . - ‘
trash‘ – a bejegyzés a kukában van (a 2.9-es verzió óta elérhető). - ”
any” – bármilyen állapotot lekér, kivéve az „öröklés”, a „kuka” és az „automatikus piszkozat” állapotot. Azok az egyéni bejegyzésállapotok is kizárásra kerülnek, amelyeknél az „exclude_from_search” értéke igaz.
- ‘
Csak a ” draft” állapotú bejegyzések megjelenítése:
|
1
|
$query = new WP_Query( array( 'post_status' => 'draft' ) ); |
Több bejegyzés állapotának megjelenítése:
|
1
2
3
4
|
$args = array( 'post_status' => array( 'pending', 'draft', 'future' ));$query = new WP_Query( $args ); |
Az összes melléklet megjelenítése:
|
1
2
3
4
5
|
$args = array( 'post_status' => 'any', 'post_type' => 'attachment');$query = new WP_Query( $args ); |
Megjegyzés Paraméterek
A 4.9-es verzió óta bevezette a `$comment_count` paramétert. Ez lehet egész szám vagy tömb.
comment_count( int ) – A megjegyzések mennyisége a CPT-nek (a keresési operátor ‘=’ műveletet hajt végre)comment_count( Tömb ) – Ha a comment_count egy tömb, akkor két argumentumnak kell lennie:- ‘
value‘ – A bejegyzéshez fűzött megjegyzések száma összehasonlításkor - ‘
compare‘ – A keresési operátor. A lehetséges értékek a következők: ‘=’, ‘!=’, ‘>’, ‘>=’, ‘<‘, ‘<=’. Az alapértelmezett érték ‘=’.
- ‘
Bejegyzések megjelenítése 20 megjegyzéssel:
|
1
2
3
4
5
|
$args = array( 'post_type' => 'post', 'comment_count' => 20,);$query = new WP_Query( $args ); |
25 vagy több megjegyzést tartalmazó bejegyzések megjelenítése:
|
1
2
3
4
5
6
7
8
|
$args = array( 'post_type' => 'post', 'comment_count' => array( 'value' => 25, 'compare' => '>=', ));$query = new WP_Query( $args ); |
Lapozási paraméterek
nopaging( logikai érték ) – az összes bejegyzés megjelenítése vagy oldalszámozás használata. Az alapértelmezett érték ‘false’, használjon lapozást.posts_per_page( int ) – oldalanként megjelenítendő bejegyzések száma (2.1-es verzió óta elérhető, lecseréltshowpostsparaméter). Használja'posts_per_page'=>-1az összes bejegyzés megjelenítéséhez (a'offset'paraméter figyelmen kívül marad egy-1értékkel). Állítsa be a ‘paged’ paramétert, ha a lapozás ki van kapcsolva a paraméter használata után. Megjegyzés : ha a lekérdezés egy hírfolyamban van, a WordPress felülírja ezt a paramétert a tárolt „posts_per_rss” opcióval. A korlát újbóli beállításához használja a „post_limits” szűrőt, vagy szűrje ki a „pre_option_posts_per_rss” értéket, és térjen vissza -1posts_per_archive_page( int ) – oldalanként megjelenítendő bejegyzések száma – csak az archív oldalakon.posts_per_pageFelülírások ésshowpostsolyan oldalakon, ahol az is_archive () vagy az is_search() igaz lenne.offset( int ) – az áthelyezendő vagy áthaladandó posta száma . Figyelmeztetés : Az offset paraméter beállítása felülbírálja/figyelmen kívül hagyja a lapozható paramétert, és megszakítja a lapozást. A'offset'paramétert a rendszer figyelmen kívül hagyja, amikor'posts_per_page'=>-1(minden bejegyzés megjelenítése) használatos.paged( int ) – oldalszám. Mutassa meg azokat a bejegyzéseket, amelyek általában csak az X oldalon jelennének meg, ha a „Régebbi bejegyzések” hivatkozást használja.page( int ) – statikus címlap oldalszáma. Mutassa meg azokat a bejegyzéseket, amelyek általában csak a statikus címlap X oldalán jelennének meg.ignore_sticky_posts( logikai érték ) – a bejegyzés ragadásának figyelmen kívül hagyása (a 3.1-es verzió óta elérhető, lecseréltcaller_get_postsparaméter).false(alapértelmezett): a ragadós bejegyzések áthelyezése a készlet elejére.true: ne helyezze a ragadós bejegyzéseket a sorozat elejére.
Oldalanként x bejegyzés megjelenítése:
|
1
|
$query = new WP_Query( array( 'posts_per_page' => 3 ) ); |
Az összes bejegyzés megjelenítése egy oldalon:
|
1
|
$query = new WP_Query( array( 'posts_per_page' => -1 ) ); |
Az összes bejegyzés megjelenítése az oldalszámozás letiltásával:
|
1
|
$query = new WP_Query( array( 'nopaging' => true ) ); |
A 4. bejegyzések megjelenítése:
|
1
|
$query = new WP_Query( array( 'offset' => 3 ) ); |
Oldalanként 5 bejegyzés megjelenítése, amelyek követik a 3 legutóbbi bejegyzést:
|
1
|
$query = new WP_Query( array( 'posts_per_page' => 5, 'offset' => 3 ) ); |
Bejegyzések megjelenítése az x oldalszámról:
|
1
|
$query = new WP_Query( array( 'paged' => 6 ) ); |
Bejegyzések megjelenítése az aktuális oldalról:
|
1
|
$query = new WP_Query( array( 'paged' => get_query_var( 'paged' ) ) ); |
Jelenítse meg az aktuális oldal bejegyzéseit, és állítsa a ‘paged’ paramétert 1-re, ha a lekérdezési változó nincs beállítva (első oldal).
|
1
2
|
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;$query = new WP_Query( array( 'paged' => $paged ) ); |
Lapozási megjegyzés: Akkor használja get_query_var('page');, ha azt szeretné, hogy a lekérdezés olyan oldalsablonban működjön, amelyet statikus címlapként állított be . Az ‘page’ lekérdezési változó egy olyan oldalszámmal ellátott bejegyzés vagy oldal oldalszámát is tartalmazza, amely tartalmazza a <!--nextpage-->gyorscímkét a bejegyzés tartalmában.
Jelenítse meg az aktuális oldal bejegyzéseit egy statikus címlapon :
|
1
2
|
$paged = ( get_query_var('page') ) ? get_query_var('page') : 1;$query = new WP_Query( array( 'paged' => $paged ) ); |
Csak az első ragadós bejegyzés megjelenítése:
|
1
2
|
$sticky = get_option( 'sticky_posts' );$query = new WP_Query( array( 'p' => $sticky[0] ) ); |
Csak az első ragadós bejegyzés megjelenítése, ha egyik sem adja vissza az utolsó közzétett bejegyzést:
|
1
2
3
4
5
6
|
$args = array( 'posts_per_page' => 1, 'post__in' => get_option( 'sticky_posts' ), 'ignore_sticky_posts' => 1,);$query = new WP_Query( $args ); |
Csak az első ragadós bejegyzés megjelenítése, ha egyik sem ad vissza semmit:
|
1
2
3
4
5
6
7
8
9
10
|
$sticky = get_option( 'sticky_posts' );$args = array( 'posts_per_page' => 1, 'post__in' => $sticky, 'ignore_sticky_posts' => 1,);$query = new WP_Query( $args );if ( $sticky[0] ) { // insert here your stuff...} |
Az összes ragadós bejegyzés kizárása a lekérdezésből:
|
1
|
$query = new WP_Query( array( 'post__not_in' => get_option( 'sticky_posts' ) ) ); |
Ragadós bejegyzések kizárása egy kategóriából:
Az ÖSSZES bejegyzés visszaadása a kategóriában, de ne jelenjen meg a ragadós bejegyzés a tetején. A „ragadós bejegyzések” továbbra is a természetes pozíciójukban jelennek meg (pl. dátum szerint):
|
1
|
$query = new WP_Query( array( 'ignore_sticky_posts' => 1, 'posts_per_page' => 3, 'cat' => 6 ); |
Ragadós bejegyzések kizárása egy kategóriából:
A kategórián belüli bejegyzések visszaküldése, de a ragadós bejegyzések teljes kizárása, és a lapozási szabályok betartása:
|
1
2
3
4
5
6
7
8
9
|
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;$sticky = get_option( 'sticky_posts' );$args = array( 'cat' => 3, 'ignore_sticky_posts' => 1, 'post__not_in' => $sticky, 'paged' => $paged,);$query = new WP_Query( $args ); |
Rendelés és rendezés paraméterek szerint
A letöltött bejegyzések rendezése.
order( string | tömborderby) – A ” ” paraméter növekvő vagy csökkenő sorrendjét jelöli . Alapértelmezés szerint ‘DESC’. Egy tömb több rendelési/rendelési készlethez használható.- ‘
ASC‘ – növekvő sorrendben a legalacsonyabbtól a legmagasabbig (1, 2, 3; a, b, c). - ‘
DESC‘ – csökkenő sorrendben a legmagasabbtól a legalacsonyabb értékig (3, 2, 1; c, b, a).
- ‘
orderby( string | tömb ) – A letöltött bejegyzések rendezése paraméterek szerint. Alapértelmezés szerint „dátum (post_date)”. Egy vagy több lehetőség is átadható.- ‘
none‘ – Nincs rendelés (2.8-as verzió óta elérhető). - ‘
ID‘ – Megrendelés postai azonosítóval. Vegye figyelembe a nagybetűket. - ‘
author‘ – Rendezés szerző szerint. - ‘
title‘ – Rendezés cím szerint. - ‘
name‘ – Rendelés postanév szerint (posta slug). - ‘
type‘ – Rendelés postatípus szerint (4.0-s verzió óta elérhető). - ‘
date‘ – Rendelés dátum szerint. - ‘
modified‘ – Rendelés az utolsó módosítás dátuma szerint. - ‘
parent‘ – Megrendelés posta/oldal szülőazonosító szerint. - –
randVéletlenszerű sorrend. - ‘
comment_count‘ – Sorrend a megjegyzések száma szerint (2.9-es verzió óta elérhető). - ‘
relevance‘ – Rendezés keresési kifejezések szerint a következő sorrendben: Először is, hogy a teljes mondat megfelel-e. Másodszor, ha az összes keresett kifejezés a címeken belül van. Harmadszor, ha valamelyik keresett kifejezés megjelenik a címekben. És negyedszer, ha a teljes mondat megjelenik a tartalomban. - ‘
menu_order‘ – Oldalsorrend. Leggyakrabban oldalakhoz ( Rendelés mező az Oldalattribútumok szerkesztése mezőben) és mellékletekhez (egész mezők a Médiagaléria beszúrása/feltöltése párbeszédpanelen) használatos, de használható bármilyen bejegyzéstípushoz, különálló ”menu_order” értékekkel (mind alapértelmezés szerint 0 ). - ‘
meta_value‘ – Ne feledje, hogy a ”meta_key=keyname” jelnek is jelen kell lennie a lekérdezésben. Vegye figyelembe azt is, hogy a rendezés ábécé szerint történik, ami megfelelő karakterláncok (pl. szavak) esetén, de váratlan lehet számok esetén (pl. 1, 3, 34, 4, 56, 6 stb., 1, 3, 4, 6 helyett, 34, 56, ahogyan azt természetesen várná). Használjameta_value_numhelyette a ” ” jelet a számértékekhez. Megadhat ”meta_type” értéket is, ha a metaértéket meghatározott típusként szeretné átadni. A lehetséges értékek a következők: ‘NUMERIC’, ‘BINARY’, ‘CHAR’, ‘DATE’, ‘DATETIME’, ‘DECIMAL’, ‘SIGNED’, ‘TIME’, ‘UNSIGNED’, ugyanaz, mint a következőben: ”$meta_query„. A ‘meta_type’ használatakor használhatja a ‘meta_value_*’ értéket is. Ha például a DATETIME értéket használja ‘meta_type’-ként, akkor a ‘meta_value_datetime’-t használhatja a rendelési struktúra meghatározásához. - ‘
meta_value_num‘ – Rendezés numerikus metaérték szerint (2.8-as verzió óta elérhető). Vegye figyelembe azt is, hogy a ”meta_key=keyname” jelnek is jelen kell lennie a lekérdezésben. Ez az érték lehetővé teszi a numerikus rendezést, amint azt fentebb a ”meta_value” szakaszban megjegyeztük. - ‘
post__in‘ – A post__in tömbben megadott bejegyzésazonosító sorrend megőrzése (a 3.5-ös verzió óta elérhető). Megjegyzés – a rendelési paraméter értéke nem változtatja meg a kapott rendezési sorrendet. - ‘
post_name__in‘ – A ‘post_name__in’ tömbben megadott post slug sorrend megőrzése (a 4.6-os verzió óta elérhető). Megjegyzés – a rendelési paraméter értéke nem változtatja meg a kapott rendezési sorrendet. - ‘
post_parent__in‘ -A ‘post_parent__in’ tömbben megadott bejegyzési szülő sorrend megőrzése (a 4.6-os verzió óta elérhető). Megjegyzés – a rendelési paraméter értéke nem változtatja meg a kapott rendezési sorrendet.
- ‘
A bejegyzések megjelenítése a bejegyzés „címe” szerint, csökkenő sorrendben:
|
1
2
3
4
5
|
$args = array( 'orderby' => 'title', 'order' => 'DESC',);$query = new WP_Query( $args ); |
A bejegyzések megjelenítése a „menu_order” szerint rendezve, a „cím”-re való visszalépéssel, csökkenő sorrendben:
|
1
2
3
4
5
|
$args = array( 'orderby' => 'menu_order title', 'order' => 'DESC',);$query = new WP_Query( $args ); |
Egy véletlenszerű bejegyzés megjelenítése:
|
1
2
3
4
5
6
|
$args = array( 'orderby' => 'rand', 'posts_per_page' => '1',);$query = new WP_Query( $args ); |
A bejegyzések megjelenítése a megjegyzések száma (népszerűség) szerint rendezve:
|
1
2
3
4
|
$args = array( 'orderby' => 'comment_count');$query = new WP_Query( $args ); |
A „Termék” típusú bejegyzések megjelenítése az „Ár” egyéni mező szerint rendezve:
|
1
2
3
4
5
6
|
$args = array( 'post_type' => 'product', 'orderby' => 'meta_value_num', 'meta_key' => 'price',);$query = new WP_Query( $args ); |
Az oldalak megjelenítése ‘cím’ és ‘menü_sorrend’ szerint rendezve. (a cím a domináns):
|
1
2
3
4
5
6
|
$args = array( 'post_type' => 'page', 'orderby' => 'title menu_order', 'order' => 'ASC',);$query = new WP_Query( $args ); |
Az oldalak megjelenítése „cím” és „menü_sorrend” szerint, különböző rendezési sorrendben (ASC/DESC) (a 4.0-s verzió óta elérhető):
|
1
2
3
4
|
$args = array( 'orderby' => array( 'title' => 'DESC', 'menu_order' => 'ASC' ));$query = new WP_Query( $args ); |
Kapcsolódó cikk: Erőteljesebb ORDER BY a WordPress 4.0-ban .
Több rendelés/rendelés pár
|
1
2
3
4
5
|
$args = array( 'orderby' => array( 'meta_value_num' => 'DESC', 'title' => 'ASC' ), 'meta_key' => 'age');$query = new WP_Query( $args ); |
‘orderby’ a ‘meta_value’-vel és egyéni bejegyzéstípussal
A „sajat_egyedi_bejegyzés típusa” típusú bejegyzések megjelenítése „életkor” szerint rendezve, és szűrve, hogy csak a 3 és 4 évesek jelenjenek meg (a meta_query használatával).
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
$args = array( 'post_type' => 'my_custom_post_type', 'meta_key' => 'age', 'orderby' => 'meta_value_num', 'order' => 'ASC', 'meta_query' => array( array( 'key' => 'age', 'value' => array( 3, 4 ), 'compare' => 'IN', ), ),);$query = new WP_Query( $args ); |
‘orderby’ több ‘meta_key’-vel
Ha két különböző postmeta-elem szerint szeretne rendelni (például először város és másodsorban állam), akkor a metalekérdezést kombinálnia kell a orderby tömbjével, a „named meta lekérdezések” használatával. Lásd az alábbi példát:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$q = new WP_Query( array( 'meta_query' => array( 'relation' => 'AND', 'state_clause' => array( 'key' => 'state', 'value' => 'Wisconsin', ), 'city_clause' => array( 'key' => 'city', 'compare' => 'EXISTS', ), ), 'orderby' => array( 'city_clause' => 'ASC', 'state_clause' => 'DESC', ),) ); |
( ebben a példában a cybmeta támogatása a WPSE-n ).
Dátum paraméterek
Egy adott időponthoz és dátumhoz kapcsolódó bejegyzések megjelenítése.
year( int ) – 4 számjegyű évszám (pl. 2011).monthnum( int ) – Hónap száma (1-től 12-ig).w( int ) – Az év hete (0-tól 53-ig). MySQL WEEK parancsot használ . A mód a „start_of_week” opciótól függ.day( int ) – A hónap napja (1-től 31-ig).hour( int ) – Óra (0-tól 23-ig).minute( int ) – Perc (0-tól 60-ig).second( int ) – Második (0-tól 60-ig).m( int ) – ÉvHónap (pl.:201307).date_query( tömb ) – Dátumparaméterek (a 3.7-es verzió óta elérhető).year( int ) – 4 számjegyű évszám (pl. 2011).month( int ) – Hónap száma (1-től 12-ig).week( int ) – Az év hete (0-tól 53-ig).day( int ) – A hónap napja (1-től 31-ig).hour( int ) – Óra (0-tól 23-ig).minute( int ) – Perc (0-tól 59-ig).second( int ) – Második (0-tól 59-ig).after( string/array ) – A bejegyzések lekérésének dátuma azután. Elfogadjastrtotime()a -kompatibilis karakterláncot vagy ‘év’, ‘hónap’, ‘nap’ értékek tömbjét:year( string ) Bármilyen négy számjegyű évet elfogad. Az alapértelmezett érték üres.month( string ) Az év hónapja. Elfogadja az 1-12 számokat. Alapértelmezett: 12.day( karakterlánc ) A hónap napja. Elfogadja az 1-31 számokat. Alapértelmezés: a hónap utolsó napja.
before( karakterlánc/tömb ) – A korábbi bejegyzések lekérésének dátuma. Elfogadjastrtotime()a -kompatibilis karakterláncot vagy ‘év’, ‘hónap’, ‘nap’ értékek tömbjét:year( string ) Bármilyen négy számjegyű évet elfogad. Az alapértelmezett érték üres.month( string ) Az év hónapja. Elfogadja az 1-12 számokat. Alapértelmezett: 1.day( karakterlánc ) A hónap napja. Elfogadja az 1-31 számokat. Alapértelmezett: 1.
inclusive( logikai érték ) – Utána/előtte, hogy a pontos értéknek egyeznie kell-e vagy sem’.compare( string ) – Lásd: WP_Date_Query::get_compare() .column( string ) – Hozzászólás oszlop a lekérdezéshez. Alapértelmezett: ‘post_date’.relation( string ) – VAGY vagy ÉS, hogyan kell az altömböket összehasonlítani. Alapértelmezett: ÉS.
2012. december 12-i bejegyzések visszaküldése:
|
1
|
$query = new WP_Query( 'year=2012&monthnum=12&day=12' ); |
vagy:
|
1
2
3
4
5
6
7
8
9
10
|
$args = array( 'date_query' => array( array( 'year' => 2012, 'month' => 12, 'day' => 12, ), ),);$query = new WP_Query( $args ); |
A mai bejegyzéseket adja vissza:
|
1
2
|
$today = getdate();$query = new WP_Query( 'year=' . $today['year'] . '&monthnum=' . $today['mon'] . '&day=' . $today['mday'] ); |
vagy:
|
1
2
3
4
5
6
7
8
9
10
11
|
$today = getdate();$args = array( 'date_query' => array( array( 'year' => $today['year'], 'month' => $today['mon'], 'day' => $today['mday'], ), ),);$query = new WP_Query( $args ); |
E heti bejegyzéseket adja vissza:
|
1
2
3
|
$week = date( 'W' );$year = date( 'Y' );$query = new WP_Query( 'year=' . $year . '&w=' . $week ); |
vagy:
|
1
2
3
4
5
6
7
8
9
|
$args = array( 'date_query' => array( array( 'year' => date( 'Y' ), 'week' => date( 'W' ), ), ),);$query = new WP_Query( $args ); |
A bejegyzések visszaküldése hétköznap 9:00 és 17:00 között
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
$args = array( 'date_query' => array( array( 'hour' => 9, 'compare' => '>=', ), array( 'hour' => 17, 'compare' => '<=', ), array( 'dayofweek' => array( 2, 6 ), 'compare' => 'BETWEEN', ), ), 'posts_per_page' => -1,);$query = new WP_Query( $args ); |
Január 1. és február 28. közötti bejegyzések visszaküldése
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
$args = array( 'date_query' => array( array( 'after' => 'January 1st, 2013', 'before' => array( 'year' => 2013, 'month' => 2, 'day' => 28, ), 'inclusive' => true, ), ), 'posts_per_page' => -1,);$query = new WP_Query( $args ); |
Ne feledje, hogy ha strtotime()a paraméterben egy -kompatibilis karakterlánc került átadásra csak egy dátummal before, akkor ez az adott dátumon 00:00:00-ra lesz konvertálva. Ebben az esetben még ha inclusiveigazra van is állítva, a dátum nem szerepel a lekérdezésben. Ha azt szeretné, hogy a megelőző dátum is szerepeljen, adja meg az időt is, például 'before' => '2013-02-28 23:59:59', vagy használja a tömbformátumot, amely automatikusan módosul, ha inclusivebe van állítva.
Több mint egy éve írt, de az elmúlt hónapban módosított bejegyzések visszaküldése
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
$args = array( 'date_query' => array( array( 'column' => 'post_date_gmt', 'before' => '1 year ago', ), array( 'column' => 'post_modified_gmt', 'after' => '1 month ago', ), ), 'posts_per_page' => -1,);$query = new WP_Query( $args ); |
A 'date_query'záradékok egymásba ágyazhatók összetett lekérdezések létrehozása érdekében. A szintaxis részleteiért lásd: Taxonómiai paraméterek .
Egyéni mező (post meta) paraméterek
Egy adott egyéni mezőhöz kapcsolódó bejegyzések megjelenítése.
A lekérdezés ezen részét a WP_Meta_Query elemzi , ezért ellenőrizze a dokumentumokat is, ha ez az argumentumlista nem naprakész.
meta_key( string ) – Egyéni mezőkulcs.meta_value( string ) – Egyéni mezőérték.meta_value_num( szám ) – Egyedi mezőérték.meta_compare( string ) – Kezelő a ”meta_value” tesztelésére. A lehetséges értékek a következők: ‘=’, ‘!=’, ‘>’, ‘>=’, ‘<‘, ‘<=’, ‘LIKE’, ‘NOT LIKE’, ‘IN’, ‘NOT IN’, ‘BETWEEN ‘, ‘NOT BETWEEN’, ‘NOT EXISTS’, ‘REGEXP’, ‘NOT REGEXP’ vagy ‘RLIKE’. Az alapértelmezett érték ‘=’.meta_query( tömb ) – Egyéni mezőparaméterek (a 3.1-es verzió óta elérhető).relation( string ) – Logikai kapcsolat az egyes belső meta_query tömbök között, ha egynél több van. A lehetséges értékek az ‘ÉS’, ‘VAGY’. Ne használja egyetlen belső meta_query tömbhöz.
meta_queryegy vagy több tömböt is tartalmaz a következő kulcsokkal:
key( string ) – Egyéni mezőkulcs.value( karakterlánc | tömb ) – Egyéni mezőérték. Csak akkor lehet tömb, hacompare,'IN','NOT IN','BETWEEN'vagy'NOT BETWEEN'. Nem kell értéket megadnia, ha a'EXISTS'vagy'NOT EXISTS'összehasonlításokat használja a WordPress 3.9-es és újabb verzióiban.
( Megjegyzés: A #23268 hiba miattvalueszükséges azNOT EXISTSösszehasonlítás megfelelő működéséhez a 3.9 előtt. Meg kell adnia néhány karakterláncot avalueparaméterhez. Az üres karakterlánc vagy a NULL NEM fog működni. Bármely másik karakterlánc azonban megteszi a trükköt, és NEM megjelenjen az SQL-ben, amikor a következőt használjaNOT EXISTS. Inspirációra van szüksége? Mit szólnál hozzá'bug #23268'.)compare( string ) – A tesztelendő operátor. A lehetséges értékek a következők: ‘=’, ‘!=’, ‘>’, ‘>=’, ‘<‘, ‘<=’, ‘LIKE’, ‘NOT LIKE’, ‘IN’, ‘NOT IN’, ‘BETWEEN ‘, ‘NOT BETWEEN’, ‘EXISTS’ és ‘NOT EXISTS’. Az alapértelmezett érték ‘=’.type( string ) – Egyéni mezőtípus. A lehetséges értékek a következők: ‘NUMERIC’, ‘BINARY’, ‘CHAR’, ‘DATE’, ‘DATETIME’, ‘DECIMAL’, ‘SIGNED’, ‘TIME’, ‘UNSIGNED’. Az alapértelmezett érték ‘CHAR’.
A „type” DATE csak akkor működik a BETWEEN „összehasonlítás” értékkel, ha a dátum ÉÉÉÉ-HH-NN formátumban van tárolva, és ezzel a formátummal tesztelték.
Fontos megjegyzés: a meta lekérdezési argumentumok tömbjétmeta_query veszi (egy tömböt vesz igénybe) – ezt az alábbi példákban láthatja. Ez a konstrukció lehetővé teszi több metaadat lekérdezését az első (külső) tömb paraméterének használatával a metalekérdezések közötti logikai kapcsolat leírására. Az elfogadott argumentumok az „ÉS”, „VAGY”. Az alapértelmezés az ‘ÉS’.
relation
Egyszerű egyéni mező lekérdezés:
Olyan bejegyzések megjelenítése, ahol az egyéni mező kulcsa „szín”, függetlenül az egyéni mező értékétől:
|
1
|
$query = new WP_Query( array( 'meta_key' => 'color' ) ); |
Olyan bejegyzések megjelenítése, ahol az egyéni mező értéke „kék”, az egyéni mező kulcsától függetlenül:
|
1
|
$query = new WP_Query( array( 'meta_value' => 'blue' ) ); |
Oldal megjelenítése, ahol az egyéni mező értéke „kék”, az egyéni mező kulcsától függetlenül:
|
1
2
3
4
5
|
$args = array( 'meta_value' => 'blue', 'post_type' => 'page');$query = new WP_Query( $args ); |
Olyan bejegyzések megjelenítése, ahol az egyéni mező kulcsa „szín”, az egyéni mező értéke pedig „kék”:
|
1
2
3
4
5
|
$args = array( 'meta_key' => 'color', 'meta_value' => 'blue');$query = new WP_Query( $args ); |
Olyan bejegyzések megjelenítése, ahol az egyéni mező kulcsa „szín”, az egyéni mező értéke pedig NEM „kék”:
|
1
2
3
4
5
6
|
$args = array( 'meta_key' => 'color', 'meta_value' => 'blue', 'meta_compare' => '!=');$query = new WP_Query( $args ); |
Olyan bejegyzések megjelenítése, amelyekben az egyéni mező kulcsa egy beállított dátum, az egyéni mező értéke pedig most. Csak azokat a bejegyzéseket jeleníti meg, amelyek dátuma még nem telt el.
|
1
2
3
4
5
6
7
|
$args = array( 'post_type' => 'event', 'meta_key' => 'event_date', 'meta_value' => date( "Ymd" ), // change to how "event date" is stored 'meta_compare' => '>',);$query = new WP_Query( $args ); |
Jelenítse meg a „terméke(ke)t, ahol az egyéni mező kulcsa a „price”, és az egyéni mező értéke 22-NÉL KISEBB VAGY EGYENLŐ EZZEL.
A „meta_value” paraméter használatával a 99-es érték 100-nál nagyobbnak tekinthető, mivel az adatok „karakterláncként”, nem „számként” tárolva. A számok összehasonlításához használja a ‘meta_value_num’ értéket.
|
1
2
3
4
5
6
7
|
$args = array( 'meta_key' => 'price', 'meta_value' => '22', 'meta_compare' => '<=', 'post_type' => 'product');$query = new WP_Query( $args ); |
Bejegyzések megjelenítése nulla (0) egyéni mezőértékkel, az egyéni mező kulcsától függetlenül:
|
1
2
3
4
|
$args = array( 'meta_value' => '_wp_zero_value');$query = new WP_Query( $args ); |
Bejegyzések megjelenítése egyetlen egyéni mezőből:
|
1
2
3
4
5
6
7
8
9
10
11
|
$args = array( 'post_type' => 'product', 'meta_query' => array( array( 'key' => 'color', 'value' => 'blue', 'compare' => 'NOT LIKE', ), ),);$query = new WP_Query( $args ); |
(Ne feledje, hogy a meta_query beágyazott tömböket vár, még akkor is, ha csak egy lekérdezése van.)
Bejegyzések megjelenítése több egyéni mezőből:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$args = array( 'post_type' => 'product', 'meta_query' => array( array( 'key' => 'color', 'value' => 'blue', 'compare' => 'NOT LIKE', ), array( 'key' => 'price', 'value' => array( 20, 100 ), 'type' => 'numeric', 'compare' => 'BETWEEN', ), ),);$query = new WP_Query( $args ); |
Olyan bejegyzések megjelenítése, amelyeknél a ‘color’ metakulcs NEM TETSZIK a ‘blue’ VAGY a ‘price’ metakulcs értékkel 20 és 100 KÖZÖTT:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
$args = array( 'post_type' => 'product', 'meta_query' => array( 'relation' => 'OR', array( 'key' => 'color', 'value' => 'blue', 'compare' => 'NOT LIKE', ), array( 'key' => 'price', 'value' => array( 20, 100 ), 'type' => 'numeric', 'compare' => 'BETWEEN', ), ),);$query = new WP_Query( $args ); |
A 'meta_query'záradékok egymásba ágyazhatók összetett lekérdezések létrehozása érdekében. Például mutasson meg olyan termékeket, ahol a color=narancs VAGY color=red&size=small a következőt jelenti:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
$args = array( 'post_type' => 'product', 'meta_query' => array( 'relation' => 'OR', array( 'key' => 'color', 'value' => 'orange', 'compare' => '=', ), array( 'relation' => 'AND', array( 'key' => 'color', 'value' => 'red', 'compare' => '=', ), array( 'key' => 'size', 'value' => 'small', 'compare' => '=', ), ), ),);$query = new WP_Query( $args ); |
Engedélyparaméterek
Bejegyzések megjelenítése, ha a felhasználó rendelkezik a megfelelő képességekkel
perm( karakterlánc ) – Felhasználói engedély.
A közzétett és privát bejegyzések megjelenítése, ha a felhasználó rendelkezik a megfelelő képességekkel:
|
1
2
3
4
5
|
$args = array( 'post_status' => array( 'publish', 'private' ), 'perm' => 'readable',);$query = new WP_Query( $args ); |
MIME típus paraméterei
A mellékletek bejegyzéstípusával használatos.
post_mime_type( karakterlánc/tömb ) – Engedélyezett mime típusok.
GIF-képű mellékletek beszerzése :
Szerezzen be gif-képeket, és ne feledje, hogy alapértelmezés szerint a melléklet post_status értéke öröklődik .
|
1
2
3
4
5
6
|
$args = array( 'post_type' => 'attachment', 'post_status' => 'inherit', 'post_mime_type' => 'image/gif',);$query = new WP_Query( $args ); |
Olyan mellékletek letöltése, amelyek nem képek:
Bizonyos mime-típusok kizárásához először le kell szereznie az összes MIME-típust a get_allowed_mime_types() segítségével , és különbséget kell tennie a kívánt tömbök és az engedélyezett mime-típusok között a -val array_diff().
|
1
2
3
4
5
6
7
8
9
|
$unsupported_mimes = array( 'image/jpeg', 'image/gif', 'image/png', 'image/bmp', 'image/tiff', 'image/x-icon' );$all_mimes = get_allowed_mime_types();$accepted_mimes = array_diff( $all_mimes, $unsupported_mimes );$args = array( 'post_type' => 'attachment', 'post_status' => 'inherit', 'post_mime_type' => $accepted_mimes,);$query = new WP_Query( $query_args ); |
Gyorsítótárazási paraméterek
Állítsa le, hogy a letöltött adatok ne kerüljenek a gyorsítótárba.
cache_results( logikai ) – Információs gyorsítótár.update_post_meta_cache( logikai ) – Meta információs gyorsítótár.update_post_term_cache( logikai érték ) – Post term információ gyorsítótár.
Bejegyzések megjelenítése a bejegyzés információinak a gyorsítótárba való hozzáadása nélkül
Jelenítsen meg 50 bejegyzést, de ne adjon hozzá bejegyzésadatokat a gyorsítótárhoz:
|
1
2
3
4
5
|
$args = array( 'posts_per_page' => 50, 'cache_results' => false);$query = new WP_Query( $args ); |
Bejegyzések megjelenítése a bejegyzés metainformációinak a gyorsítótárba való hozzáadása nélkül
Jelenítsen meg 50 bejegyzést, de ne adjon hozzá bejegyzés metainformációit a gyorsítótárhoz:
|
1
2
3
4
5
|
$args = array( 'posts_per_page' => 50, 'update_post_meta_cache' => false);$query = new WP_Query( $args ); |
Bejegyzések megjelenítése anélkül, hogy a gyorsítótárba adná a bejegyzésre vonatkozó információkat
Jelenítsen meg 50 bejegyzést, de ne adjon hozzá bejegyzési kifejezést a gyorsítótárhoz:
|
1
2
3
4
5
|
$args = array( 'posts_per_page' => 50, 'update_post_term_cache' => false);$query = new WP_Query( $args ); |
Általános használat esetén ezeket nem kell használnia, a gyorsítótárba való felvétel a helyes, de bizonyos körülmények között hasznosak lehetnek. Ilyen körülményekre példa lehet, amikor a WP_Query segítségével lekérjük a megjelenítendő bejegyzések címeinek és URL-címeinek listáját, de a bejegyzéssel kapcsolatos egyéb információk nem kerülnek felhasználásra, és a taxonómiára és a metaadatokra sem lesz szükség. Ha nem tölti be ezeket az információkat, időt takaríthat meg a felesleges SQL-lekérdezésektől.
Megjegyzés : Ha állandó objektum-gyorsítótár-háttérprogramot (például memcached) használ, akkor ezek a jelzők alapértelmezés szerint hamisak, mivel nincs szükség a gyorsítótár frissítésére minden oldalbetöltéskor, ha van állandó gyorsítótár.
Visszatérési mezők paramétere
Állítsa be a visszatérési értékeket.
fields( string ) – Mely mezőket kell visszaadni. Három lehetőség van:'all'– Minden mező visszaadása (alapértelmezett).'ids'– Visszaadja a bejegyzésazonosítók tömbjét.'id=>parent'– stdClass objektumok tömbjét adja vissza ID és post_parent tulajdonságokkal.
Ha bármi mást ad meg, az összes mezőt (alapértelmezett) visszaadja – a bejegyzési objektumok tömbjét.
Mód
- __call — A privát/védett metódusok olvashatóvá tétele a visszafelé kompatibilitás érdekében.
- __construct — Konstruktor.
- __get – A privát tulajdonságok olvashatóvá tétele a visszafelé kompatibilitás érdekében.
- __isset – A privát tulajdonságok visszamenőleges kompatibilitása ellenőrizhetővé tétele.
- fill_query_vars — kitölti a lekérdezési változókat, amelyek nem léteznek a paraméterben.
- gener_postdata — Bejegyzési adatok generálása.
- get — Lekéri egy lekérdezési változó értékét.
- get_posts – Lekérdezési változók alapján bejegyzések tömbjét kéri le.
- get_queried_object — Lekéri az aktuálisan lekérdezett objektumot.
- get_queried_object_id – Lekéri az aktuálisan lekérdezett objektum azonosítóját.
- get_search_stopwords – A keresési kifejezések elemzésekor használt stopszavak lekérése.
- have_comments — Van-e elérhető több megjegyzés.
- have_posts – Meghatározza, hogy elérhető-e több bejegyzés a ciklusban.
- init — Indítja az objektum tulajdonságait és beállítja az alapértelmezett értékeket.
- init_query_flags – Visszaállítja a lekérdezésjelzőket false értékre.
- is_404 — A lekérdezés 404-es (nincs eredményt ad vissza)?
- is_archive — A lekérdezés egy meglévő archív oldalra vonatkozik?
- is_attachment — A lekérdezés egy meglévő mellékletoldalra vonatkozik?
- is_author — A lekérdezés egy meglévő szerzői archívum oldalára vonatkozik?
- is_category — A lekérdezés egy meglévő kategóriaarchívum oldalra vonatkozik?
- is_comment_feed — A lekérdezés egy megjegyzés feedre vonatkozik?
- is_comments_popup – Az aktuális URL a megjegyzések felugró ablakában található-e. – elavult
- is_date — A lekérdezés egy meglévő dátumarchívumra vonatkozik?
- is_day — A lekérdezés egy létező napi archívum?
- is_embed — Beágyazott bejegyzésre vonatkozik a lekérdezés?
- is_favicon — A favicon.ico fájl lekérdezése?
- is_feed — A lekérdezés egy hírfolyamra vonatkozik?
- is_front_page — A lekérdezés a webhely címlapjára vonatkozik?
- is_home — A lekérdezés a blog kezdőlapjára vonatkozik?
- is_main_query — A lekérdezés a fő lekérdezés?
- is_month — A lekérdezés egy meglévő havi archívum?
- is_page — A lekérdezés egy létező egyetlen oldalra vonatkozik?
- is_paged — A lekérdezés lapozott eredményre vonatkozik, és nem az első oldalra?
- is_post_type_archive — A lekérdezés egy meglévő bejegyzés típusú archív oldalra vonatkozik?
- is_preview — A lekérdezés bejegyzés vagy oldal előnézetére vonatkozik?
- is_privacy_policy — Az adatvédelmi irányelvek oldalra vonatkozó lekérdezés?
- is_robots — A lekérdezés a robots.txt fájlra vonatkozik?
- is_search — A lekérdezés keresésre vonatkozik?
- is_single — Egy létező egyetlen bejegyzésre vonatkozik a lekérdezés?
- is_singular — A lekérdezés egy létező egyetlen bejegyzésre bármilyen bejegyzéstípusú (bejegyzés, melléklet, oldal, egyéni bejegyzéstípus)?
- is_tag — A lekérdezés egy meglévő címkearchívum oldalra vonatkozik?
- is_tax — A lekérdezés egy meglévő egyéni taxonómiai archív oldalra vonatkozik?
- is_time — A lekérdezés egy adott időpontra vonatkozik?
- is_trackback — A lekérdezés egy trackback végponthívásra vonatkozik?
- is_year — A lekérdezés egy meglévő év archívumára vonatkozik?
- lazyload_comment_meta — Lazyload comment meta a hurokban lévő megjegyzésekhez. – elavult
- lazyload_term_meta — Lazyload kifejezés meta a ciklusban lévő bejegyzésekhez. – elavult
- next_comment – Az aktuális megjegyzésindex megismétlése és a WP_Comment objektum visszaadása.
- next_post – Állítsa be a következő bejegyzést, és iterálja az aktuális bejegyzés indexét.
- parse_order — Elemezzen egy ‘order’ lekérdezési változót, és szükség szerint adja át az ASC-be vagy a DESC-be.
- parse_orderby – A megadott orderby álnevet (ha megengedett) megfelelően előtagozott értékké alakítja.
- parse_query — Lekérdezési karakterlánc elemzése és a lekérdezéstípus logikai értékek beállítása.
- parse_query_vars — A lekérdezés vars újraértelmezése.
- parse_search — SQL-t generál a WHERE záradékhoz az átadott keresési kifejezések alapján.
- parse_search_order – SQL-t generál az ORDER BY feltételhez az átadott keresési kifejezések alapján.
- parse_search_terms — Ellenőrizze, hogy a kifejezések alkalmasak-e a keresésre.
- parse_tax_query — Elemzi a különböző taxonómiával kapcsolatos lekérdezések változóit.
- lekérdezés – Beállítja a WordPress lekérdezést a lekérdezési karakterlánc elemzésével.
- reset_postdata — Egy beágyazott lekérdezés után ez a függvény visszaállítja a $post globálist a lekérdezés aktuális bejegyzésére.
- rewind_comments – A megjegyzések visszatekerése, a megjegyzésindex visszaállítása és a megjegyzés elsőre.
- rewind_posts — A bejegyzések visszatekerése és a bejegyzés indexének visszaállítása.
- set — Beállítja a lekérdezési változó értékét.
- set_404 — Beállítja a 404 tulajdonságot, és elmenti, hogy a lekérdezés hírfolyam-e.
- set_found_posts — Állítsa be a talált bejegyzések számát és az oldalak számát (ha korlátozó záradékot használt) az aktuális lekérdezéshez.
- setup_postdata — Globális bejegyzési adatok beállítása.
- the_comment – Beállítja az aktuális megjegyzést.
- the_post – Beállítja az aktuális bejegyzést.
0 hozzászólás