サポート » 使い方全般 » マルチサイトの関連記事から特定のタームIDを除外したい

  • いつもお世話になっております。

    表題の件に関しまして、
    カテゴリーターム名を取得してマルチサイト上のタイトルにターム名が含む記事を取得しています。
    $term_titleと$term_idは別のソースにより取得済みです。

    この「$term_id」使って、$term_idが所属する記事を除外したいのですが
    可能でしょうか。

    ご教授頂けると幸いでございます。

    
    <?php
     // ネットワーク関連記事
    
    //$term_titleの関連記事を取得
    //$term_id を除外したい
    
    $network_site_not_ids = '';
    $network_site_not_ids = sanitize_text_field(get_field('network-site-not-id','option'));
    $network_site_not_ids = mb_convert_kana($network_site_not_ids, 'a', 'utf-8');//全角英数を半角英数に変換
    //$network_site_not_ids = mb_ereg_replace('[^0-9]', '', $network_site_not_ids);//特定の文字以外削除
    
    $args = array(
         //「1」が立つと有効、「0」だと無効
         'public' => 1,//属性が「公開」のサイトのみ
         'archived' => 0,//アーカイブサイト
         'mature' => 0,//成人向けサイト
         'spam' => 0,//スパムサイト
         'deleted' => 0, //削除済みサイト
     
        'site__not_in' => array( /*get_current_blog_id(),*/$network_site_not_ids), //削除済みサイト
         
    );
    $sites = get_sites($args);
     
      if($sites ):
        foreach( $sites as $child_site ):
          $child_site_id = $child_site->blog_id;// ["blog_id"];
          $blog_id_arr[] = $child_site_id;
         endforeach;
      endif;
     
      $sql = '';
      $tmp = $blog_id_arr;
    //$limit_pub = '-1 month';//表示日数の設定(マイナスを付ける事)
    //$limit_mod = '-2 week';//表示日数の設定(マイナスを付ける事)
     
      foreach($blog_id_arr as $b_id){
         next($tmp);
         switch_to_blog($b_id);
         $sql .= <<<HERE
    (SELECT *, $b_id as blog_id
    FROM $wpdb->posts
    WHERE
    (post_type = 'post' )
    AND post_status = 'publish'
    AND post_title like ('%$term_title%')
    /*AND (post_date > date_add( now(), interval $limit_pub ) OR post_modified > date_add( now(), interval $limit_mod ) )*/
    )
    HERE;
      
        if(current($tmp) !== false){
            $sql .= "UNION\n";
        }
        restore_current_blog();
     
    }//END foreach($blog_id_arr as $b_id)
     
    $sql .= <<<HERE
    ORDER BY RAND()
    LIMIT 10
    
     
    HERE;
    //$rows = $wpdb->get_results($wpdb->prepare($query, '%今日の%'));
    $posts = $wpdb->get_results($sql);
     
      //記事一覧
      foreach ($posts as $post):
        switch_to_blog($post->blog_id);
        setup_postdata($post);
    
          //サイト名取得
          $current_sites = get_blog_details();
          $site_path = $current_sites -> path;
          $site_name = $current_sites -> blogname;
          $site_child_name = esc_html(get_bloginfo('name'));//サイト名
     
          //記事の情報を取得
          include($private_theme_url . 'parts/single/default-content.php');//投稿の標準コンテンツ読み込み
    
          $post_list_network_one =
    		  '      <li class="nt-archive-post">'.PHP_EOL.
    		  '        <a href="'.$post_permalink_url.'" target="_blank">'.PHP_EOL.
    		  '          <span class="span-site-name">'.$site_name.'</span>'.PHP_EOL.
    		  '          <span class="span-post-name">'.$post_title.'</span>'.PHP_EOL.
    		  '        </a>'.PHP_EOL.
    		  '      </li><!-- END .nt-archive-post -->'.PHP_EOL.
    		  PHP_EOL;
    
          $post_list_network_single[] = $post_list_network_one;
    
            if($post_list_network_single):
              $network_post_out =
    			  '  <aside class="archive-relation-block limit1">'.PHP_EOL.
    			  '    <h4 class="">「'.$term_title.'」関連サイトオススメ記事</h4>'.PHP_EOL.
    			  '    <ul class="">'.PHP_EOL.
    			         implode('', $post_list_network_single ).
    			  '    </u>'.PHP_EOL.
    			  '  </aside><!-- END archive-relation-block -->'.PHP_EOL.
    			  PHP_EOL;
    
            endif;//$post_list_network_one
     
    
      endforeach;
     
      wp_reset_postdata($post); wp_reset_query();
      restore_current_blog();
     
    //endif;
      
    switch_to_blog( $current_blog_id );//メインサイトに戻す
    
     
     //END ネットワーク関連記事
     ?>
    
  • このトピックに返信するにはログインが必要です。