カスタムフィールドで設定した日付の順番で投稿順を設定する方法 (開催日がカスタムフィールドのスラッグ)
$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' );






