wordpress loop – Bucle de categoría y taxonomía de WordPress con paginación

Pregunta:

Tengo dos taxonomías que pertenecen al mismo tipo de publicación (publicaciones).

Aventura – perteneciente a la categoría taxonomía Aventura – perteneciente a la taxonomía tipo vacaciones

Quiero ejecutar dos consultas:

$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 );

Aunque los términos son los mismos, tienen diferentes publicaciones asociadas.

Esta consulta solo devuelve publicaciones con la taxonomía de tipos de vacaciones y no también con la taxonomía de categoría. Si comento la matriz con los tipos de vacaciones, la categoría de taxonomía muestra las publicaciones relevantes.

Necesito que se muestren tanto juntos como con paginación.

'paged' => get_query_var('paged')

He leído que necesito agregar esto a la primera matriz, pero supongo que no puedo probar esto hasta que el ciclo funcione correctamente primero.

¿Alguna idea de dónde me estoy equivocando, por favor?


Está bien. Llegué a algo con esto ahora, pero la paginación no funciona. Va a una página 404 al hacer clic en las otras páginas, por ejemplo, 2, 3, 4. ¿Qué es lo que me falta?

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();   

Respuesta:

No use 'numberposts'=>-1 porque numberposts está depravado y, además, -1 muestra todas las publicaciones en una página.

En su lugar, use posts_per_page y establezca su valor de acuerdo con la cantidad de publicaciones que desee.

$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(); 

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım