public static function event_microdata($arg_post = null, $echo = true, $next_upcoming = false) { global $post; ob_start(); $p = is_null($arg_post) ? $post : $arg_post; ?> <div itemscope itemtype="http://schema.org/Event"><?php ?> <meta itemprop="name" content="<?php the_title(); ?> "><?php ?> <meta itemprop="url" content="<?php echo get_permalink($p->ID); ?> "><?php if (isset($_REQUEST['event_rdate']) && '' != $_REQUEST['event_rdate']) { $arr = explode(',', $_REQUEST['event_rdate']); $event_start = $arr[0]; $event_end = $arr[1]; } else { if ($next_upcoming) { global $wpdb; $sql = "SELECT event_start, event_end FROM `{$wpdb->prefix}rhc_events` WHERE post_id={$p->ID} AND event_start>NOW() ORDER BY event_start ASC LIMIT 1;"; $event_start = $wpdb->get_var($sql, 0, 0); $event_end = $wpdb->get_var($sql, 1, 0); if (empty($event_start) || empty($event_end)) { $event_start = get_post_meta($p->ID, 'fc_start_datetime', true); $event_end = get_post_meta($p->ID, 'fc_end_datetime', true); } } else { $event_start = get_post_meta($p->ID, 'fc_start_datetime', true); $event_end = get_post_meta($p->ID, 'fc_end_datetime', true); } } $ts_start = strtotime($event_start); $ts_end = strtotime($event_end); if ($ts_end < $ts_start) { $ts_end = $ts_start; } $start = date('Y-m-d\\TH:i:s', $ts_start); $end = date('Y-m-d\\TH:i:s', $ts_end); ?> <meta itemprop="startDate" content="<?php echo esc_attr($start); ?> "><?php ?> <meta itemprop="endDate" content="<?php echo esc_attr($end); ?> "><?php //venues $venues = wp_get_post_terms($p->ID, RHC_VENUE, array()); if (is_array($venues) && count($venues) > 0) { foreach ($venues as $v) { rhc_template_frontend::venue_microdata($v); } } //organizers $organizers = wp_get_post_terms($p->ID, RHC_ORGANIZER, array()); if (is_array($organizers) && count($organizers) > 0) { foreach ($organizers as $organizer) { rhc_template_frontend::organizer_microdata($organizer); } } ?> </div><?php $output = ob_get_contents(); if (!$echo) { ob_end_clean(); } return $output; }