현재 서비스 준비 중인 페이지로, 실제로 다른 내용이 있을 수 있습니다. 

WP Fullcalendar 와 ACF Date/time필드 조합

작성자 | 2021. 01. 10

if(class_exists("WP_FullCalendar")) {
    //Remove the custom where clause before the calendar query is executed
    function danbi_remove_posts_where() {
        remove_filter( 'posts_where', 'wpfc_temp_filter_where' );
    }
    add_action('wpfc_before_wp_query', 'danbi_remove_posts_where', 10);

    //Override the item timestamp
    function danbi_change_item_date($item, $post) {
        $start = date("Y-m-d\TH:i:s", strtotime(get_field('cal_start_date', $post->ID, false) . ' ' . get_field('start_time', $post->ID, false)));

        $end = date("Y-m-d\TH:i:s", strtotime(get_field('cal_end_date', $post->ID, false) . ' ' . get_field('end_time', $post->ID, false)));

        $item['start'] = $start;
        $item['end'] = $end;

        return $item;
    }
    add_filter('wpfc_ajax_post', 'danbi_change_item_date', 10, 2);

    function danbi_wpfc_fullcalendar_args($args) {
        $startday = str_replace('-', '', $args['scope'][0]);
        $endday = str_replace('-', '', $args['scope'][1]);
        unset($args['scope']);

        $new_args = array(
            'meta_key'      => 'cal_start_date',
            'orderby'       => 'meta_value',
            'order'         => 'ASC',
            'meta_query'        => array(
                'relation' => 'OR',
                array(
                    'key' => 'cal_start_date',
                    'value' => array( $startday, $endday ),
                    'type' => 'numeric',
                    'compare' => 'BETWEEN',
                    'type' => 'DATE'
                ),
                array(
                    'key' => 'cal_end_date',
                    'value' => array( $startday, $endday ),
                    'type' => 'numeric',
                    'compare' => 'BETWEEN',
                    'type' => 'DATE'
                )
            ),

        );
        $args = array_merge($args, $new_args);

        return $args;
    }
    add_filter( 'wpfc_fullcalendar_args', 'danbi_wpfc_fullcalendar_args' );

}

단비스토어

워드프레스의 개발원칙을 지키며, 워드프레스를 위한 국내 최대의 리소스를 제공합니다.

단비 노하우는...

  • 상용 사이트 제작과 운영을 지식 제공을 목적으로 단편적이고 파편적인 정보를 지양합니다.
  • 최상의 리소스를 중심으로 작성되며, 리소스의 가격은  거의 고려하지 않습니다. 따라서, 상용 사이트에 적합하지 않은 테마나 플러인은 다뤄지지 않습니다. 
  • 모든 노하우는 단비에서 직접 검증한 내용입니다.
  • IT 기술이 빠르게 발전하 듯이, 언급된 리소스에도 변화가 있을 수 있습니다. 업데이트 날짜를 기준으로 읽어봐 주시기 바랍니다.