Skip to content

Instantly share code, notes, and snippets.

@jo-snips
Last active March 13, 2025 17:33
Show Gist options
  • Save jo-snips/2415009 to your computer and use it in GitHub Desktop.
Save jo-snips/2415009 to your computer and use it in GitHub Desktop.
The Events Calendar: Basic Conditional Wrappers
<?php
/*-----------------------------------------------------------------------------------*/
/* Conditional Logic to Detect Various Event Related Views/Pages
/*-----------------------------------------------------------------------------------*/
if( tribe_is_month() && !is_tax() ) { // Month View Page
echo 'were on the month view page';
} elseif( tribe_is_month() && is_tax() ) { // Month View Category Page
echo 'were on the month view category page';
} elseif( tribe_is_past() || tribe_is_upcoming() && !is_tax() ) { // List View Page
echo 'were on the list view page';
} elseif( tribe_is_past() || tribe_is_upcoming() && is_tax() ) { // List View Category Page
echo 'were on an list view category page';
} elseif( tribe_is_week() && !is_tax() ) { // Week View Page
echo 'were the week view page';
} elseif( tribe_is_week() && is_tax() ) { // Week View Category Page
echo 'were the week view category page';
} elseif( tribe_is_day() && !is_tax() ) { // Day View Page
echo 'were on the day view page';
} elseif( tribe_is_day() && is_tax() ) { // Day View Category Page
echo 'were on a day view category page';
} elseif( tribe_is_map() && !is_tax() ) { // Map View Page
echo 'were on the map view page';
} elseif( tribe_is_map() && is_tax() ) { // Map View Category Page
echo 'were on the map view category page';
} elseif( tribe_is_photo() && !is_tax() ) { // Photo View Page
echo 'were on the photo view page';
} elseif( tribe_is_photo() && is_tax() ) { // Photo View Category Page
echo 'were on the photo view category page';
} elseif( tribe_is_event() && is_single() ) { // Single Events
echo 'were on a single event page';
} elseif( tribe_is_venue() ) { // Single Venues
echo 'were on a single venue page';
} elseif( get_post_type() == 'tribe_organizer' && is_single() ) { // Single Organizers
echo 'were on a single organizer page';
} else {
}
@josephdickson
Copy link

josephdickson commented Mar 26, 2019

As a response to myself this will work. However, fewer checks would be ideal.

add_action( 'wp_footer', 'my_footer_scripts' );

function my_footer_scripts(){

	// Load script for home, pages, single posts. Exclude all types of calendar pages and attachment posts.
	if ( is_page() || is_home() || is_single() && ( ! ( is_attachment() || tribe_is_month() || tribe_is_past() || tribe_is_week() || tribe_is_day() || tribe_is_map || tribe_is_photo() || tribe_is_event() || tribe_is_venue() || get_post_type() == 'tribe_organizer' && is_single() ) ) ) {

		echo 'script loaded';

	} else {
		echo 'script not loaded';
		// Don't load script
	}

}

@IanDelMar
Copy link

Haven't tested it, but wouldn't something like this work?

function prefix_tribe_is() {
	if ( class_exists( 'Tribe__Events__Main' ) ) {
		return null !== Tribe__Events__Main::instance()->displaying ? true : false;
	}
}

@zackeryfretty
Copy link

This is an easier way to target the "List View":

tribe_is_list_view()

@hansschuijff
Copy link

To see if I'm on any event page, I just use tribe_is_event_query(). I don't know if even widgets return true on this, but since I don't use event widgets, It seems to work.

I had a problem with all these functions at some point when updating the event plugins. When the versions of TEC and TEC pro don't match, the plugin isn't loaded and the tribe_is_ functions are not reliably available, what results in fatal errors. To prevent that I not only test if the plugin is active, by checking if Tribe__Events__Main or Tribe__Events__Pro__Main exists, but also if the functions are available, since I found and can't count on that even after checking the class for availability.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment