アドセンス
<?php if ( have_posts () ) : $loop_count = '' ; //$ransuu = rand(1, 5); $koukoku_no = array(4,8,12) ; while ( have_posts() ) : the_post(); $loop_count++; ?> <!----/宣言-----> <?php include("d_roop_box.php"); ?> <!----閉じループタグ-----> <?php if ( $loop_count == $koukoku_no[0] || $loop_count == $koukoku_no[1] || $loop_count == $koukoku_no[2] ) :?> <?php include("ad_kiji_naka.php"); ?> <?php endif; ?> <?php endwhile; endif; ?>
フォーチ
<!--アドバンスカスタム ループフィールド--------> <div class="flickThumb"> <ul> <?php if($post->sekou_gallery2): //URLがあれば $fields = get_field('sekou_gallery2'); foreach ($fields as $field) : ?> <?php $title= get_the_title(); $attachment_id = $field['id']; ?> <li><a href="#" onClick="return false;"> <?php $car_photo = wp_get_attachment_image($attachment_id,'BLOG249_176',0,array('alt'=>$title.'|'.$head_rogo_under,'title'=>$title.'|'.$head_rogo_under)); echo $car_photo; ?> </a></li> <?php endforeach; endif; ?> </ul> </div><!--/.flickThumb--> <!--フォーチ回数指定--------> <?php $i = 0; $kiji = 1;//この回数でフォーチ終わる。 $fields = get_field('sekou_gallery2'); foreach ($fields as $field) : if($i >= $kiji)://siが3よりおおきくなったら break;//ループおわり else://それまではこれで出力 ?> 表示領域 <?php $i++;//繰り返すごとに$iに数値が1つづ増える endif; endforeach; ?>
記事ループ基本
<!--基本--> <?php if ( have_posts () ) : while ( have_posts() ) : the_post(); ?> 内容 <?php endwhile; else:?> <div style="font-size:12px; color:#CCC; padding-top:10px;">※記事はまだありません。</div> <?php endif; ?> <div style="padding-top:30px; padding-left:0px;"> <?php if(function_exists('wp_pagenavi')) : wp_pagenavi(); endif; //ページナビ ?> </div>
クエリポスト
<!--ページ送りある場合は クエリポストで --> <!--★★★クエリポスト種類--> <!--$query_stringは例えば、カテゴリアーカイブページの場合、現状のカテゴリアーカイブページの条件を残す設定--> <?php query_posts($query_string . "&orderby=menu_order&order=ASC"); //順序小さい順?> <?php query_posts($query_string . "&posts_per_page=20&orderby=menu_order&order=ASC"); //順序小さい順ページ数指定?> <?php query_posts("cat=123"); ?> <!--配列では$query_stringは使えない--> <!-- 's' => $s とあったが本当か? https://www.it-swarm-ja.tech/ja/query-posts/queryposts-querystring/961913587/--> <!-- 順序→ 投稿日 これで 出来たっけ? 'orderby' => array('menu_order'=> 'DESC','date'=> 'DESC'), --> <?php $args = array( 'posts_per_page' => 10, 'paged' => $paged, 'orderby' => 'menu_order', 'order' => 'ASC', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'event', 'field' => 'slug', 'terms' => array( 'トップ用', '予備' ), //'operator'=>'NOT IN' ), ), 'post_type' => 'venere_event', //カスタム投稿名 ); query_posts( $args ); ?> ループへ続く <!--ページナビプラグインの後--> <!---クエリポスト用リセットクエリ----> <?php wp_reset_query(); ?>
ゲットポスト
!--基本はゲットポストで--> <!-- なんだかページ送りが上手く簡単にいかなかったので ページ送りある場合は クエリポストで↑ --> <?php $args = array( 'posts_per_page' => 3, 'cat' => 337, ); $myposts = get_posts( $args ); if(! $myposts){ echo '<div style="margin-left:20px;">記事はまだありません。</div>';} foreach ( $myposts as $post ) : setup_postdata( $post ); ?> 内容 <?php endforeach; wp_reset_postdata();?>
クエリ
<!------------------------------------------------------------------------------------> <!------------メタキーでソート--- メタクエリ空なし&5年以内---ゲットポスト -----ページ送りむずかしい サブループで仕様可能------> <?php $d_today = date("Ymd");//今日を取得して $d_5years = $d_today - 50000;//5年と00ヶ月00日を引くと5年前の日付を取得できる。 $args = array( 'posts_per_page' => 3, 'post_type' => 'shop', //カスタム投稿名 'meta_key'=>'open_day', 'orderby' => 'meta_value_num', 'order' => 'DESC', 'meta_query' => array( //メタクエリ //カスタムフィールドによる絞り込み array( 'key' => 'open_day',//カスタムフィールド オープン日 'value' => '',//空のやつは 'compare'=>'NOT IN'//含めん ), array( 'key' => 'open_day', //カスタムフィールド名 オープン日 'value' > $d_5years, //5年以内のやつを 含める (数値大きいと5年以内) ), ), ); ?> <?php $myposts = get_posts( $args ); foreach ( $myposts as $post ) : setup_postdata( $post ); ?> <?php include("d_roop_box.php"); ?> <?php endforeach; wp_reset_postdata();?> <!---------------------------------------taxクエリ---------------------------------------------> くわしく http://elearn.jp/wpman/column/c20110908_01.html 例 'news'または'topics'カテゴリーに属し、'service'および'price-down'という投稿タグが付いた投稿記事を絞り込む場合 <?php $args = array( 'tax_query' => array( array( 'taxonomy'=>'category', 'terms'=>array( 'news', 'topics' ), 'field'=>'slug', 'include_children'=>true, 'operator'=>'IN', //termsで指定した値が配列の場合いずれかの要素に一致 ), array( 'taxonomy'=>'post_tag', 'terms'=>array( 'service', 'price-down' ), 'field'=>'slug', 'operator'=>'AND', //termsで指定した値が配列の場合すべての要素に一致 //'operator'=>'NOT IN', //termsで指定した値(配列の場合はすべての要素)に一致しない ), 'relation' => 'AND', //すべての条件に一致 //'relation' => 'OR', //いずれかの条件に一致 ) ) ?> <!---------------------------------------metaクエリ--------------------------------------> くわしく http://www.memo.d-marking.com/blog/2014/10/25/%e3%82%af%e3%82%a8%e3%83%aa%e3%83%bc%e3%83%9d%e3%82%b9%e3%83%88%e3%81%be%e3%81%a8%e3%82%81url%e7%ad%89/ カスタムフィールド「hoge」に「fuga」という文字列を含み 「foo」の値が「bar」を持たない記事を表示 <?php $args = array( "meta_query" => array( array( "key" => "hoge", "value" => "fuga", "compare" => "LIKE" ), array( "key" => "foo", "value" => "bar", "compare" => "NOT IN" ) ) ) // compareの 可能な値は、 '=', '!=', '>', '>=', '<', '<=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN', 'EXISTS' (WP >= 3.5でのみ), 'NOT EXISTS' (WP >= 3.5でのみ). 値 'REGEXP'、'NOT REGEXP'、 'RLIKE' は WordPress 3.7で追加されました。 デフォルト値は '=' 。 ?> <!--------------------------------------------dateクエリ-----------------------------------------> くわしく http://www.memo.d-marking.com/?p=1409 くわしく http://elearn.jp/wpman/column/c20131030_01.html 使用目的はソールドアウトに変更更新した記事を 30日間はループに表示させるが30日以降は表示させない という設定で仕様予定 //投稿日が一年以上前で、一ヶ月以内に更新された記事を取得 <?php $args = array( 'date_query' => array( array( 'column' => 'post_date_gmt', 'before' => '1 year ago', ), array( 'column' => 'post_modified_gmt', 'after' => '1 month ago', ), ), 'posts_per_page' => -1, ); $query = new WP_Query( $args ); //or でループさせる query_posts( $args ); ?>
stingイベントTOP カスタムフィールドの日付 と今日で比較して、今日より未来のもののみ表示 <?php $meta_value = date("Ymd"); // echo "<pre>"; // print_r($meta_value); // echo "</pre>"; $args = array( 'post_type' => 'event_info', //カスタム投稿名 'posts_per_page' => 6, 'meta_query' => array( //メタクエリ //カスタムフィールドによる絞り込み array( 'key' => 'event_day',//カスタムフィールド オープン日 'value' => $meta_value, 'compare'=>'>=',//含めん 'type' => 'DATE' //日付の比較 ) ) ); $myposts = get_posts( $args ); if(! $myposts){ echo '<div style="margin-left:20px;">記事はまだありません。</div>';} foreach ( $myposts as $post ) : setup_postdata( $post ); ?> <?php include(get_stylesheet_directory() . "/event_roop.php"); ?> <?php endforeach; wp_reset_postdata();?>
new WP_Query
くわしく https://wemo.tech/160 https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query 複数の並び替えを実現したい場合、new WP_Queryでも できるようだ、ふくざつな項目がたくさんあるぞ <?php //$argsのプロパティを変えていく $args = array( 'post_type' => 'post', 'posts_per_page' => -1, 'no_found_rows' => true, //ページャーを使う時はfalseに。 ); $the_query = new WP_Query($args); if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); /* ループ内の記述 */ endwhile; endif; wp_reset_postdata(); ?>
イズメインクエリ
<?php //fanctionで アーカイブに投稿を制御させる方法 function SortArchive( $query ) { //管理画面スルー if ( is_admin() || ! $query->is_main_query() ) return; //こっから if ( $query->is_category() || $query->is_archive() || $query->is_tax() || $query->is_search() ) { $query->set( 'meta_key', 'item_sta' ); $query->set( 'orderby', array( 'meta_value' => 'DESC', 'date' => 'DESC' ) );//並び替えの2つの条件 メタキーで並べ 同じメタキーは古い投稿順 return; //これいる?? } } add_action( 'pre_get_posts', 'SortArchive' ); ?>