it-swarm.com.de

WordPress Kategorie & Taxonomie-Schleife mit Paginierung

Ich habe zwei Taxonomien, die zu demselben Beitragstyp (denselben Beiträgen) gehören.

Abenteuer - Zugehörigkeit zur Kategorie Taxonomie Abenteuer - Zugehörigkeit zur Ferienart Taxonomie

Ich möchte zwei Abfragen ausführen:

$args = array(
            'post_type' => 'post',
            'tax_query' => array(
            'relation' => 'OR',
                array(
                    'taxonomy' => 'holiday-types',
                    'field'    => 'slug',
                    'terms'    => 'adventure',
                ),
                array(
                    'taxonomy' => 'category',
                    'field'    => 'slug',
                    'terms' => 'adventure',
                ),  
            ),

        );
        $the_query = new WP_Query( $args );

Obwohl die Begriffe identisch sind, sind ihnen unterschiedliche Posts zugeordnet.

Diese Abfrage gibt nur Posts mit der Taxonomie "Urlaubstypen" und nicht auch mit der Taxonomie "Kategorie" zurück. Wenn ich das Array mit den Feiertagstypen auskommentiere, werden in der Taxonomiekategorie die relevanten Beiträge angezeigt.

Ich brauche sie sowohl zusammen als auch mit Paginierung zu zeigen.

'paged' => get_query_var('paged')

Ich habe gelesen, dass ich dies zum ersten Array hinzufügen muss, aber ich denke, ich kann dies nicht testen, bis ich die Schleife zuerst richtig funktioniert.

Irgendwelche Ideen, wo ich falsch liege, bitte?


OK. Ich habe jetzt etwas damit zu tun, aber die Paginierung funktioniert nicht. Beim Durchklicken der anderen Seiten, z. 2, 3, 4. Was fehlt mir?

global $query_string;
$myquery = wp_parse_args($query_string);
$myquery = array(
    'paged' => $paged,
    'numberposts'=>-1,
    'tax_query' => array(
        'relation' => 'OR',
        array(
            'taxonomy' => 'category',
            'terms' => array('adventure'),
            'field' => 'slug',

        ),
        array(
            'taxonomy' => 'holiday-types',
            'terms' => array('adventure'),
            'field' => 'slug',
        ),        
    ),
 );
query_posts($myquery);

while ( have_posts() ) : the_post();
    echo '<li>';
    the_title();
    echo '</li>';
endwhile;

// Reset Query
wp_pagenavi();
wp_reset_query();   
3
user1682743

Verwenden Sie 'numberposts'=>-1 nicht, da die Anzahl der Posts veraltet ist. -1 zeigt den gesamten Post auf einer Seite an.

Verwenden Sie stattdessen posts_per_page und legen Sie den Wert entsprechend der Anzahl der gewünschten Beiträge fest.

$paged= (get_query_var('paged' )) ? get_query_var('paged'):1; 
global $query_string;
$myquery = wp_parse_args($query_string);
$myquery = array(
    'paged' => $paged,
    'posts_per_page'=>10,
    'tax_query' => array(
        'relation' => 'OR',
        array(
            'taxonomy' => 'category',
            'terms' => array('adventure'),
            'field' => 'slug',

        ),
        array(
            'taxonomy' => 'holiday-types',
            'terms' => array('adventure'),
            'field' => 'slug',
        ),        
    ),
 );
query_posts($myquery);

while ( have_posts() ) : the_post();
    echo '<li>';
    the_title();
    echo '</li>';
endwhile;

// Reset Query
wp_pagenavi();
wp_reset_query(); 
1
terminator