Tribe__Events__Main::before_html_data_wrapper( string $html )
before_html_data_wrapper adds a persistent tag to wrap the event display with a way for jQuery to maintain state in the dom. Also has a hook for filtering data attributes for inclusion in the dom
Contents
Parameters
- $html
-
(string) (Required)
Return
(string)
Source
File: src/Tribe/Main.php
public function before_html_data_wrapper( $html ) {
if ( ! $wp_query = tribe_get_global_query_object() ) {
return;
}
if ( ! $this->show_data_wrapper['before'] ) {
return $html;
}
/*
* The category might come from a query for a taxonomy archive or as
* an additional query variable: let's check both.
*/
$event_taxonomy = self::instance()->get_event_taxonomy();
$category = '';
if ( is_tax( $event_taxonomy ) ) {
$category = get_query_var( 'term' );
} elseif ( $tribe_cat = $wp_query->get( $event_taxonomy, false ) ) {
$category = $tribe_cat;
}
$data_attributes = array(
'live_ajax' => tribe_get_option( 'liveFiltersUpdate', true ) ? 1 : 0,
'datepicker_format' => tribe_get_option( 'datepickerFormat' ),
'category' => $category,
'featured' => tribe( 'tec.featured_events' )->is_featured_query(),
);
// allow data attributes to be filtered before display
$data_attributes = (array) apply_filters( 'tribe_events_view_data_attributes', $data_attributes );
// loop through the attributes and build the html output
foreach ( $data_attributes as $id => $attr ) {
$attribute_html[] = sprintf(
'data-%s="%s"',
sanitize_title( $id ),
esc_attr( $attr )
);
}
$this->show_data_wrapper['before'] = false;
// return filtered html
return apply_filters( 'tribe_events_view_before_html_data_wrapper', sprintf( '<div id="tribe-events" class="tribe-no-js" %s>%s', implode( ' ', $attribute_html ), $html ), $data_attributes, $html );
}