web-dev-qa-db-ja.com

WordPressカテゴリとページ割り付けのある分類ループ

同じ投稿タイプに属する2つの分類法があります(投稿)。

アドベンチャー - カテゴリ分類法に属するアドベンチャー - 休日型分類法に属する

2つのクエリを実行したいです。

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

用語は同じですが、それらに関連付けられている投稿が異なります。

このクエリでは、分類分類ではなく、休日分類分類の投稿のみが返されます。配列を休日の種類でコメントアウトすると、分類カテゴリに関連する投稿が表示されます。

私は彼らが両方とも一緒に見せると同時にページ付けをする必要があります。

'paged' => get_query_var('paged')

私はこれを最初の配列に追加する必要があることを読みましたが、最初にループが正しく動作するまでこれをテストすることはできません。

私が間違っているところで何かアイデアがありますか?


OK。私は今これでどこかに持っています、しかしページネーションはうまくいきません。他のページにクリックスルーすると404ページに移動します。 2、3、4。足りないのは何ですか?

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

その上numberpostsは省略されているので'numberposts'=>-1を使用しないでください。-1は1ページにすべての投稿を表示します。

代わりにposts_per_pageを使用して、投稿数に応じて値を設定してください。

$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