Interogare pentru mai multe tipuri de postări personalizate într-o singură buclă

18 iun. 2013, 16:41:28
Vizualizări: 60.2K
Voturi: 24

Sunt conștient că există mai multe postări care acoperă subiecte similare cu ceea ce urmează să întreb.

Am trei tipuri de postări personalizate active, pe lângă 'posts'. Vreau să rulez o buclă care să extragă toate postările categorizate sub o anumită categorie

<?php
          $args = array(
    'post_type' => 'testimonial',
    'posts_per_page' => 1,
    'tax_query' => array(
        array ( 
                'taxonomy' => 'testimonial_category',
                'field' => 'slug',
                'terms' => 'home'
    )
)
);
$query = new WP_Query( $args );
                $postcount = 0;
            ?>
            <?php if ($query->have_posts()) : ?>
                <?php while ($query->have_posts()) : $query->the_post(); ?>
                    <?php $postcount++; ?>
//bucla aici
<?php wp_reset_query(); ?>   

Acesta este codul pe care îl am în prezent, nu sunt sigur cum să-l condensez pentru a prelua mai multe tipuri de postări dintr-o singură categorie.

0
Toate răspunsurile la întrebare 2
7
39

Doar schimbă partea cu post_type în:

'post_type' => array('testimonial', 'other_post_type', 'another-post-type'),

Presupunând că taxonomia este validă pentru toate cele 3 tipuri de postări. Altfel, va trebui să o lași deoparte.

De ce? Poți pasa un array în câmpul post_type.

18 iun. 2013 16:46:57
Comentarii

Cum pot specifica numele categoriei în care să caut. 'taxonomy' => 'testimonial_category'

dannyw24 dannyw24
18 iun. 2013 16:49:36

@user2478101 : ^^ Interogarea ta tax_query din întrebare pare OK, deși nu am testat-o. Ce încerci să faci diferit?

s_ha_dum s_ha_dum
18 iun. 2013 16:57:50

Am o taxonomie în fiecare tip de postare cu un termen numit home. Vreau să afișez orice postare care are acel termen selectat

dannyw24 dannyw24
18 iun. 2013 17:00:55

Am încercat să folosesc această abordare, dar nu pare să încarce alte articole din tipurile personalizate de postări. query_posts( array( 'post_type' => array('post', 'testimonial', 'casestudy'), 'cat' => 69, 'showposts' => 3 ) );

dannyw24 dannyw24
18 iun. 2013 17:16:32

Pentru ca această abordare să funcționeze, taxonomia trebuie să fie identică pentru toate. Din câte știu, termenii nu pot fi legați între taxonomii diferite. http://core.trac.wordpress.org/ticket/12269

GhostToast GhostToast
18 iun. 2013 17:17:42

Cum pot face ca taxonomia să fie aceeași în întregul WP?

dannyw24 dannyw24
18 iun. 2013 17:20:22

înregistrează aceeași taxonomie pentru mai multe tipuri de postări. folosește același nume/slug/etc. "my_one_taxonomy" și apoi înregistreaz-o pentru toate tipurile de postări.

GhostToast GhostToast
18 iun. 2013 17:30:53
Arată celelalte 2 comentarii
1
$args = array(
    'post_type'      => array( 'testimonial', 'post' ), // Tipuri de postări de interogat (testimoniale și postări normale)
    'posts_per_page' => 1, // Numărul de postări de returnat
);
$query = new WP_Query( $args ); // Inițializarea interogării

Notă de editare: Pentru a interoga mai multe tipuri de postări, veți adăuga un array() cu tipurile de postări în loc să interogați doar unul singur.

1 mai 2020 03:53:21
Comentarii

Samundar, poți oferi o explicație despre modul în care răspunsul tău oferă o soluție? Uneori, utilizatorii care pun întrebări au încercat deja să rezolve ceva timp de ore, iar primirea doar a unui fragment de cod poate părea descurajantă.

Tony Djukic Tony Djukic
1 mai 2020 06:01:41