Last active
July 21, 2019 15:00
-
-
Save megmorsie/f3f3b51adfa677dc243a147a26090740 to your computer and use it in GitHub Desktop.
Quick Plugin Made for Cleveland GiveCamp 2018 & Updated for 2019 | Usage: [events] | Requires The Events Calendar to be installed and activated.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
* Plugin Name: TCBA Events Shortcode | |
* Plugin URI: https://gist.github.com/megmorsie/f3f3b51adfa677dc243a147a26090740 | |
* Description: Sets up a shortcode [events] to be used to display an unordered list of upcoming events (set to 5). | |
* Version: 1.0 | |
* Author: Cle GiveCamp | |
* Author URI: http://clevelandgivecamp.org | |
* License: GPL2 | |
* Text Domain: cle_givecamp | |
*/ | |
// Supporting Documentation for This Plugin's Functionality: | |
// https://support.theeventscalendar.com/666307-Using-tribe_get_events | |
add_shortcode('events', 'cgc_return_event_list_shortcode'); | |
function cgc_return_event_list_shortcode() { | |
if ( function_exists('tribe_get_events') ) { | |
// Patch found here: https://wordpress.org/support/topic/tribe_get_events-stopped-returning-eventstartdate-and-eventenddate-by-default/ | |
add_filter( 'tribe_get_events', 'mdw_add_back_EventEndDate', 5, 1 ); | |
function mdw_add_back_EventEndDate($events) { | |
$updated_events = array(); | |
foreach($events as $event): | |
$event->EventStartDate = tribe_get_start_date( $event, false, 'Y-m-j g:i a'); | |
$event->EventEndDate = tribe_get_end_date( $event, false, 'Y-m-j g:i a'); | |
$updated_events[]=$event; | |
endforeach; | |
return $updated_events; | |
} | |
$event_list = 'No upcoming events available.'; | |
$five_events = tribe_get_events( array( | |
'posts_per_page' => 5, | |
'start_date' => 'now' | |
) ); | |
if ( $five_events ) { | |
$event_list = '<ul>'; | |
foreach ( $five_events as $event ) { | |
setup_postdata( $event ); | |
$event_title = $event->post_title; | |
$event_id = $event->ID; | |
$event_permalink = get_post_permalink($event_id); | |
$event_date = $event->EventStartDate; | |
$event_date = new DateTime($event_date); | |
$long_date = $event_date->format('F j, Y \a\t g:i a'); | |
$event_list .= "<li class='event-list-item'> | |
$long_date - <a href='$event_permalink'>$event_title</a> | |
</li>"; | |
} | |
$event_list .= '</ul>'; | |
} | |
} else { | |
$event_list = 'Please ensure The Events Tribe Plugin is active.'; | |
} | |
return $event_list; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment