A WordPress Query osztály tutoriál. Parancsok behívók…

Written by redzs

2022.03.24.

Kategóriák

Használat

Szabványos hurok

Forrás link

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.


Top ↑

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.

  • authorint ) – szerzői azonosító használata.
  • author_namestring ) – ‘ user_nicename‘ használata – NEM név.
  • author__intömb ) – szerzői azonosító használata (a 3.7-es verzió óta elérhető).
  • author__not_intö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.

  • catint ) – használati kategória azonosítója.
  • category_namestring ) – slug kategória használata.
  • category__andtömb ) – kategóriaazonosító használata.
  • category__intömb ) – kategóriaazonosító használata.
  • category__not_intö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.

  • tagstring ) – használja a slug címkét.
  • tag_idint ) – használjon azonosítót.
  • tag__andarray ) – használjon címkeazonosítókat.
  • tag__inarray ) – használjon címkeazonosítókat.
  • tag__not_inarray ) – használjon címkeazonosítókat.
  • tag_slug__andtömb ) – használjon tag slugs.
  • tag_slug__intö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 ) ) );

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ára tax_query).
  • tax_querytömb ) – taxonómiai paraméterek használata (a 3.1-es verzió óta elérhető).
    • relationstring ) – 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.
      • taxonomystring ) – Taxonómia.
      • fieldkarakterlá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”.
      • termsint/string/array ) – Taxonómiai kifejezés(ek).
      • include_childrenlogikai ) – Be kell-e venni a gyerekeket a hierarchikus taxonómiákba. Alapértelmezés szerint igaz.
      • operatorstring ) – 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:

'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.

  • sstring ) – 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.

  • pint ) – post id használata.
  • namestring ) – post slug használata.
  • page_idint ) – oldalazonosító használata.
  • pagenamestring ) – használja a page slug-ot.
  • post_parentint ) – 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__inarray ) – 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_inarray ) – 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__intö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 a ignore_sticky_posts.
  • post__not_intömb ) – post ids használata. Adja meg a NEM letöltendő bejegyzést.
  • post_name__inarray ) – 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_passwordbool ) – 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_passwordkarakterlá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_typestring / tömb ) – használjon bejegyzéstípusokat. A bejegyzéseket bejegyzéstípusok szerint kéri le, az alapértelmezett érték: ” post„. Ha tax_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_Query post_status a „közzététel”, a mellékletek alapértelmezett post_statusértéke „örököl”. Ez azt jelenti, hogy nem küldenek vissza mellékleteket, hacsak nem állítja be kifejezetten post_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_statusstring / 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_countint ) – A megjegyzések mennyisége a CPT-nek (a keresési operátor ‘=’ műveletet hajt végre)
  • comment_countTö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

  • nopaginglogikai é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_pageint ) – oldalanként megjelenítendő bejegyzések száma (2.1-es verzió óta elérhető, lecserélt showpostsparamé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 -1
  • posts_per_archive_pageint ) – oldalanként megjelenítendő bejegyzések száma – csak az archív oldalakon. posts_per_pageFelülírások és showpostsolyan oldalakon, ahol az is_archive () vagy az is_search() igaz lenne.
  • offsetint ) – 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.
  • pagedint ) – 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.
  • pageint ) – 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_postslogikai érték ) – a bejegyzés ragadásának figyelmen kívül hagyása (a 3.1-es verzió óta elérhető, lecserélt caller_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.

  • orderstring | 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).
  • orderbystring | 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álja meta_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.

  • yearint ) – 4 számjegyű évszám (pl. 2011).
  • monthnumint ) – Hónap száma (1-től 12-ig).
  • wint ) – 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.
  • dayint ) – A hónap napja (1-től 31-ig).
  • hourint ) – Óra (0-tól 23-ig).
  • minuteint ) – Perc (0-tól 60-ig).
  • secondint ) – Második (0-tól 60-ig).
  • mint ) – ÉvHónap (pl.: 201307).
  • date_querytömb ) – Dátumparaméterek (a 3.7-es verzió óta elérhető).
    • yearint ) – 4 számjegyű évszám (pl. 2011).
    • monthint ) – Hónap száma (1-től 12-ig).
    • weekint ) – Az év hete (0-tól 53-ig).
    • dayint ) – A hónap napja (1-től 31-ig).
    • hourint ) – Óra (0-tól 23-ig).
    • minuteint ) – Perc (0-tól 59-ig).
    • secondint ) – Második (0-tól 59-ig).
    • afterstring/array ) – A bejegyzések lekérésének dátuma azután. Elfogadja strtotime()a -kompatibilis karakterláncot vagy ‘év’, ‘hónap’, ‘nap’ értékek tömbjét:
      • yearstring ) Bármilyen négy számjegyű évet elfogad. Az alapértelmezett érték üres.
      • monthstring ) Az év hónapja. Elfogadja az 1-12 számokat. Alapértelmezett: 12.
      • daykarakterlánc ) A hónap napja. Elfogadja az 1-31 számokat. Alapértelmezés: a hónap utolsó napja.
    • beforekarakterlánc/tömb ) – A korábbi bejegyzések lekérésének dátuma. Elfogadja strtotime()a -kompatibilis karakterláncot vagy ‘év’, ‘hónap’, ‘nap’ értékek tömbjét:
      • yearstring ) Bármilyen négy számjegyű évet elfogad. Az alapértelmezett érték üres.
      • monthstring ) Az év hónapja. Elfogadja az 1-12 számokat. Alapértelmezett: 1.
      • daykarakterlánc ) A hónap napja. Elfogadja az 1-31 számokat. Alapértelmezett: 1.
    • inclusivelogikai érték ) – Utána/előtte, hogy a pontos értéknek egyeznie kell-e vagy sem’.
    • comparestring ) – Lásd: WP_Date_Query::get_compare() .
    • columnstring ) – Hozzászólás oszlop a lekérdezéshez. Alapértelmezett: ‘post_date’.
    • relationstring ) – 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 );

'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_keystring ) – Egyéni mezőkulcs.
  • meta_valuestring ) – Egyéni mezőérték.
  • meta_value_numszám ) – Egyedi mezőérték.
  • meta_comparestring ) – 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_querytömb ) – Egyéni mezőparaméterek (a 3.1-es verzió óta elérhető).
    • relationstring ) – 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:

  • keystring ) – Egyéni mezőkulcs.
  • valuekarakterlánc | tömb ) – Egyéni mezőérték. Csak akkor lehet tömb, ha compare'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 miatt valueszükséges az NOT EXISTSösszehasonlítás megfelelő működéséhez a 3.9 előtt. Meg kell adnia néhány karakterláncot a valueparamé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álja NOT EXISTS. Inspirációra van szüksége? Mit szólnál hozzá 'bug #23268'.)
  • comparestring ) – 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 ‘=’.
  • typestring ) – 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 );

'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

  • permkarakterlá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_typekarakterlá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_resultslogikai ) – Információs gyorsítótár.
  • update_post_meta_cachelogikai ) – Meta információs gyorsítótár.
  • update_post_term_cachelogikai é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.

  • fieldsstring ) – 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

Egy hozzászólás elküldése

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Wordpress TutoriálokDiviA WordPress Query osztály tutoriál. Parancsok behívók…