ファンク
//スケジュールの並び替え function SortArchive( $query ) { //管理画面スルー if ( is_admin() || ! $query->is_main_query() ) return; //こっから // if ( $query->is_category() || $query->is_archive() || $query->is_tax() || $query->is_search() ) { if($query->is_post_type_archive( 'schedule' )) { $query->set( 'posts_per_page' , 12); $query->set('meta_key', 'schedule_day'); $query->set('orderby', array( 'meta_value' => 'ASC') ); $query->set('meta_compare' , '>='); $query->set('meta_value' , date("Y年m月d日")); $query->set('type' , 'DATE'); //$query->set( 'meta_key', 'item_sta' ); //$query->set( 'orderby', array( 'meta_value' => 'DESC', 'date' => 'DESC' ) );//新しい デフォ return; } } add_action( 'pre_get_posts', 'SortArchive' ); //過去の記事の並び替え urlに/?sort=backとする あえて2にして もっかい書く function SortArchive2( $query ) { //管理画面スルー if ( is_admin() || ! $query->is_main_query() ) return; if ( $query->is_category() || $query->is_archive() || $query->is_tax() || $query->is_search() ) { if ($query->is_search() ) ://method="post" URLが動的 $sortset = (string)filter_input(INPUT_POST, 'sort'); else : //method="get"//urlが静的 $sortset = (string)filter_input(INPUT_GET, 'sort'); endif; if ( $sortset == 'back' ) { //$query->set( 'orderby', 'date' ); //新しい デフォ $query->set('meta_compare' , '<'); //今日より古い記事 $query->set('orderby', array( 'meta_value' => 'DESC') ); //今日より並べる } return; } } add_action( 'pre_get_posts', 'SortArchive2' );
アーカイブースケジュール
<?php $sortset = (string)filter_input(INPUT_GET, 'sort'); if ( $sortset !== 'back' ) :?> <a href="/スケジュール/?sort=back" style="color:#FFF600">◀ 過去のスケジュールはこちら</a> <?php endif; ?>
//スケジュールの管理画面の並び替え function order_posts_in_admin($wp_query) { if ( is_admin() && $wp_query->is_main_query() && 'schedule' == $wp_query->get('post_type') ){ // if('draft' == $wp_query->get('post_status')){ $wp_query->set('orderby', 'ID'); $wp_query->set('meta_key', 'schedule_day'); $wp_query->set('orderby', array( 'meta_value' => 'ASC') ); $wp_query->set('meta_compare' , '>='); $wp_query->set('meta_value' , date("Y年m月d日")); $wp_query->set('type' , 'DATE'); // } } } add_action('pre_get_posts', 'order_posts_in_admin'); //スケジュールの管理画面の並び替え urlに/? post_status=publish の場合 公開済みの場合に 過去の記事をもってく あえて2にして もっかい書く function order_posts_in_admin2($wp_query) { if ( is_admin() && $wp_query->is_main_query() && 'schedule' == $wp_query->get('post_type') ){ $sortset = (string)filter_input(INPUT_GET, 'post_status');//post_status=publishをゲット //$sortset = (string)filter_input(INPUT_POST, 'post_status'); //INPUT_POSTではないらしい if ( $sortset == 'publish' ) { $wp_query->set('meta_key', 'schedule_day'); $wp_query->set('orderby', array( 'meta_value' => 'DESC') ); $wp_query->set('meta_compare' , '<'); $wp_query->set('meta_value' , date("Y年m月d日")); $wp_query->set('type' , 'DATE'); } } } add_action('pre_get_posts', 'order_posts_in_admin2');
カスタムアドミンで調整
.post-type-schedule .subsubsub .count{ display:none}/*カウント消す*/ .post-type-schedule .subsubsub .mine{ display:none}/*所有消す*/