ファンク
//スケジュールの並び替え
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}/*所有消す*/