no-image

WordPressで特定のタクソノミーアーカイブの並び順と表示フィル ターの指定方法

ここではsession_startに格納されているY-m-d H:i:s形式の日付と比較しています。
query_postsを使うとサイトが遅くなるので使ってはいけません。
pre_get_postsを使用することでloopを回す前にqueryに変更をかけることができます。

queryでのカスタムフィールドの扱いはWP_queryに詳しく記載があります。

//shortycolossus////////////////////////////////
// sessiontypeかsessionplaceのtaxonomy archiveページでは
// 項目の表示順をsession_startの降順にして、
// イベントの日付が過去の場合は表示しないようにする
////////////////////////////////////////////////
function session_archive_filter_order( $query ) {
if ( is_admin() || ! $query->is_main_query() ) {
return;
}
if ( $query->is_tax(array('sessiontype','sessionplace')) && $query->is_archive() )
{ $query->set( 'meta_key', 'session_start');
$query->set( 'meta_value', date('Y-m-d 0:0:0') );
$query->set( 'meta_compare', '>=' );
$query->set( 'order', 'DESC' );
$query->set( 'orderby', 'meta_value' );
$query->set( 'meta_key', 'session_start' );
}
}
add_action( 'pre_get_posts', 'session_archive_filter_order' );
pocketlinehatebuimagegalleryaudiovideocategorytagchatquotegoogleplusfacebookinstagramtwitterrsssearchenvelopeheartstaruserclosesearch-plushomeclockupdateeditshare-squarechevron-leftchevron-rightleafexclamation-trianglecalendarcommentthumb-tacklinknaviconasideangle-double-upangle-double-downangle-upangle-downstar-halfstatus