カスタムフィールドで設定した日付の順番で投稿順を設定する方法 (開催日がカスタムフィールドのスラッグ)
$my_query = new WP_Query(array( 'posts_per_page' => -1, 'order' => 'DESC', 'meta_key'=>'開催日', 'orderby'=>'meta_value', 'meta_query' => array( 'relation' => 'AND', array( 'key' => '掲載開始日', 'value' => date('Y/m/d'), 'compare' => '<=', 'type' => 'DATE' ), array( 'key' => '掲載終了日', 'value' => date('Y/m/d'), 'compare' => '>=', 'type' => 'DATE' ) ) ));
管理画面だとこう
まずはカスタムフィールドをカラムに表示
function manage_custom_columns($columns) { $columns['開催日'] = '開催日'; return $columns; } add_filter('manage_posts_columns', 'manage_custom_columns'); function add_custom_columns($column_name, $post_id) { if ($column_name == '開催日') { echo date('Y年m月d日', strtotime(get_post_meta($post_id, '開催日', true))); } } add_action('manage_posts_custom_column', 'add_custom_columns', 10, 2);
開催日の順番にソートするには
function column_orderby_custom( $vars ) { if ( isset( $vars['orderby'] ) && '開催日' == $vars['orderby'] ) { $vars = array_merge( $vars, array( 'meta_key' => '開催日', 'orderby' => 'meta_value' )); } return $vars; } add_filter( 'request', 'column_orderby_custom' ); function posts_register_sortable( $sortable_column ) { $sortable_column['開催日'] = '開催日'; return $sortable_column; } add_filter( 'manage_edit-post_sortable_columns', 'posts_register_sortable' );