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 Loop if ( $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 Loop while ( $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 Loop while ( $query2 ->have_posts() ) { $query2 ->the_post(); echo '<li>' . get_the_title( $query2 ->post->ID ) . '</li>' ; } // Restore original Post Data wp_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_query
A 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 cat
a fent említett módon, vagy a category__in
kö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 tag
a fent említett módon, vagy kifejezetten megadhatja a tag__in
kö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__and
nagyjá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_type
beá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__in
fog visszaadni has_posts()
(és az összes bejegyzést visszaküldi). Logikát kell használni annak meghatározására, hogy WP_Query
kell-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_in
ugyanabban 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_type
beá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_query
egy 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_status
a „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_status
az „ö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éltshowposts
paraméter). Használja'posts_per_page'=>-1
az ö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_page
Felülírások ésshowposts
olyan 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_posts
paramé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. - –
rand
Vé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_num
helyette 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 inclusive
igazra 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 inclusive
be 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_query
egy 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 miattvalue
szü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 avalue
paramé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