File "Permalinks_Helper.php"
Full Path: /home/romayxjt/public_html/wp-content/plugins/the-events-calendar/src/Tribe/Featured_Events/Permalinks_Helper.php
File size: 1.89 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Class `Tribe__Events__Featured_Events__Permalinks_Helper`
*
* This class handles the modification of event permalinks to include a featured slug if necessary.
* It hooks into the permalink generation process for events to potentially add a featured slug.
*
* @internal
*/
class Tribe__Events__Featured_Events__Permalinks_Helper {
/**
* Hooks the `maybe_add_featured_slug` method into the `tribe_events_get_link` filter.
*
* @since 4.0.0
*/
public function hook() {
add_filter( 'tribe_events_get_link', [ $this, 'maybe_add_featured_slug' ], 100, 6 );
}
/**
* Potentially adds a featured slug to the event permalink.
*
* This method checks if the event is marked as featured and, if so, appends the featured slug
* to the event URL. It does nothing if the event is explicitly set as non-featured or if the
* current query does not relate to featured events.
*
* @since 4.0.0
*
* @param string $url The original event URL.
* @param string $type The type of the link being generated.
* @param mixed $secondary Secondary data related to the link.
* @param mixed $term Term data related to the link.
* @param array $url_args Additional URL arguments.
* @param mixed $featured Indicates if the event is featured. Can be null, true, or false.
*
* @return string The modified or original URL.
*/
public function maybe_add_featured_slug( $url, $type, $secondary, $term, $url_args, $featured ) {
if ( ! $wp_query = tribe_get_global_query_object() ) {
return;
}
// Do nothing if $featured is explicitly set to (bool) false or if the current query does not
// relate to featured events
if (
false === $featured
|| 'single' === $type
|| ( null === $featured && ! $wp_query->get( 'featured' ) )
) {
return $url;
}
return trailingslashit( trailingslashit( $url ) . Tribe__Events__Main::instance()->featured_slug );
}
}