マルチサイトで、カスタムフィールドを使って特定の記事をソートしたい
-
お世話になります。
以下の条件でネットワーク全体からソートしたいのですが
カスタムフィールドには、「advanced custom field Pro」を使用しています。
(デートピッカー及びセレクト型)ソートに必要なカスタムフィールド
//①get_field(‘event-complete’);//状態を表すフィールド(セレクト型)「値が”normal”の記事だけ取得したい」
//②get_field(‘event-complete-time’);//期限を表すフィールド(日付型)「日時が古い順番で並び替えたい」現在、以下のソースを使って絞込みしていますがこれをベースに改編したい感じです。
<?php // ネットワークお知らせ情報 /* ソートに必要なカスタムフィールド //①get_field('event-complete');//状態を表すフィールド(セレクト型)「値が"normal"の記事だけ取得したい」 //②get_field('event-complete-time');//期限を表すフィールド(日付型)「日時が古い順番で並び替えたい」 */ $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_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 = 'event' ) AND post_status = 'publish' /*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 5 HERE; $posts = $wpdb->get_results($sql); //記事一覧 foreach ($posts as $post): switch_to_blog($post->blog_id); setup_postdata($post); include('parts_relation_single_post_list_one.php');//投稿の標準コンテンツ読み込み //$network_post_outを渡す endforeach; wp_reset_postdata($post); wp_reset_query(); restore_current_blog(); //endif; switch_to_blog( $current_blog_id );//現在のサイトに戻す //END 関連 ?>
恐れ入ります、ご教授頂ければ幸いです。
よろしくお願い致します。
1件の返信を表示中 - 1 - 1件目 (全1件中)
1件の返信を表示中 - 1 - 1件目 (全1件中)
- トピック「マルチサイトで、カスタムフィールドを使って特定の記事をソートしたい」には新たに返信することはできません。