

こんにちは。wordpress初心者なのでここで質問させていただきます。  
ホテル紹介のサイトを制作しています。そこでホテルの個別記事のページに、その個別記事のホテルと関連する他のホテルを表示したいです。

_**\-----実現したいこと-----**_  
２つのクエリを結合させて、表示中のホテルが属しているカテゴリの値（親カテゴリ1と親カテゴリ2）を取得して、全ての投稿の中からカテゴリが一致する記事だけを表示したいです。（フィルターをかけたいです。）（カスタムではなく普通の投稿タイプ）

例）  
ホテルAの記事ページの場合は、関連ホテルとして"ホテルB"と"ホテルD"を表示させたい。

・カテゴリーの階層  
カテゴリ => ホテル  
カテゴリ => イベント

親カテゴリ1 => 目的地  
子カテゴリ1 => 日本  
子カテゴリ1の子カテゴリ => 東京、大阪、沖縄

子カテゴリ2 => イギリス  
子カテゴリ2の子カテゴリ => ロンドン、リバプール

親カテゴリ2 => 旅行テーマ  
子カテゴリ => ショッピング、食べ歩き、美術館巡り

記事のカテゴリー分配  
ホテルA => ホテル、目的地、 **日本** 、 **東京** 、旅行テーマ、 **ショッピング**  
ホテルB => ホテル、目的地、 **日本** 、大阪、旅行テーマ、食べ歩き、 **ショッピング**  
ホテルC => ホテル、目的地、イギリス、ロンドン、旅行テーマ、美術館巡り  
ホテルD => ホテル、目的地、 **日本** 、 **東京** 、旅行テーマ、 **ショッピング**

サイトにはイベントのページもあるので、下記のような記事もあります。  
イベントA => イベント、目的地、東京、旅行テーマ、ショッピング  
イベントB => イベント、目的地、大阪、旅行テーマ、食べ歩き  
イベントC => イベント、目的地、沖縄、旅行テーマ、美術館巡

_**\-----現状-----**_  
現状は、どちらか１つのクエリだけをループさせると、しっかりとフィルターがかかり表示されますが、２つのクエリ($dest_argと$reise_arg)を結合させるとなにも表示されなくなります。  
例えばdestination_queryだけでループを回すとちゃんと目的地でフィルターがかかり、表示されます。（$reise_queryのみの場合でもちゃんと旅行テーマでフィルターがかかります。）

[参考リンク- Can i merge 2 new WP_Query($variable)
's?](https://wordpress.stackexchange.com/questions/55519/can-i-merge-2-new-wp-
queryvariable-s/123193#123193)

[code]

    <!-- single-hotel.php -->
    <section class="single__related similar__hotels__list">
    <h3 class="headline text-left">Related Hotels</h3>
    <div class="inner-wrapper">
      <?php
    　 // 目的地のID取得
      foreach((get_the_category()) as $childcat) {
        if (cat_is_ancestor_of(15, $childcat)) {
            $dest_ID = $childcat->cat_ID;
         }}
    
    　 //  旅行テーマのID取得
      foreach((get_the_category()) as $childcat) {
        if (cat_is_ancestor_of(2, $childcat)) {
            $reise_ID = $childcat->cat_ID;
         }}
    
      // 目的地用
      $dest_arg = array (
         'post__not_in'      => array($post->ID),
         'category_name'     =>  'hotels',
    　　　'category__in' => $dest_ID,
         'category__not_in' => array(13, 14), // 13 is event ID
         'orderby'           => 'rand',
         'posts_per_page'    => 3,
        );
    
      // 旅行テーマ用
      $reise_arg = array (
          'post__not_in'      => array($post->ID),
          'category_name'     =>  'hotels',
    　　　 'category__in' => $reise_ID,
          'category__not_in' => array(13, 14),
          'orderby'           => 'rand',
        );
    
       $destination_query = new WP_Query($dest_arg);
       $reise_query = new WP_Query($reise_arg);
    
       $new_query = new WP_Query();
       $new_query->posts = array_merge( $destination_query->posts, $reise_query->posts );
    
       if( $new_query -> have_posts() ):
           while ( $new_query -> have_posts() ) :
           $new_query -> the_post();
       ?>
    
[/code]

もし不明な点やアドバイスいただけると助かります。できるだけ早く返信をします。  
宜しくお願い致します。


CC BY-SA 4.0
2021-09-14T12:58:51.563
82485
2021-09-14T13:29:39.543
2021-09-14T13:29:39.543
29392
29392
question
php wordpress
２つのクエリを結合させて特定のカテゴリーを指定して関連記事を表示したいです。