Skip to content

Instantly share code, notes, and snippets.

@cliffordp cliffordp/functions.php
Last active Jun 28, 2019

Embed
What would you like to do?
The Events Calendar and related plugins: Add your own location for template file loading.
<?php
/**
* The Events Calendar and related plugins: Add your own location for template file loading.
*
* Example "Single Event within List View" for Avada theme (which has theme overrides).
* Now tries to load in this order:
* This plugin: /app/public/wp-content/plugins/my-plugin/tribe-events/list/single-event.php
* Theme root so it stays even if switch themes: /app/public/wp-content/themes/tribe-events/list/single-event.php
* Child theme with theme overrides: /app/public/wp-content/themes/Avada-Child-Theme/tribe-events/list/single-event.php
* Parent theme with theme overrides: /app/public/wp-content/themes/Avada/tribe-events/list/single-event.php
* Plugin default: /app/public/wp-content/plugins/the-events-calendar/src/views/list/single-event.php
*
* @link https://gist.github.com/b76421f2490a8b8995493f203e11b331
*
* @see \Tribe__Events__Templates::getTemplateHierarchy()
*
* @param string $file The full file path trying to be loaded.
* @param string $template The template name, such as
*
* @return string
*/
function tribe_additional_template_locations( string $file, string $template ) {
// Put them in the order of priority (first location gets loaded before second location if first exists)
$new_locations = [
'my_plugin' => trailingslashit( plugin_dir_path( __FILE__ ) ) . 'tribe-events', // /app/public/wp-content/plugins/cliff-test-tec/tribe-events/default-template.php
'themes_root' => trailingslashit( get_theme_root() ) . 'tribe-events', // /app/public/wp-content/themes/tribe-events/default-template.php
];
foreach ( $new_locations as $location ) {
$new_file = trailingslashit( $location ) . $template;
if ( file_exists( $new_file ) ) {
return $new_file;
}
}
return $file;
}
add_filter( 'tribe_events_template', 'tribe_additional_template_locations', 10, 2 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.