Skip to content

Instantly share code, notes, and snippets.

@Pebblo
Last active February 27, 2025 13:26
Show Gist options
  • Save Pebblo/ac4b410e2c411a5ae2c8128fd8ef770f to your computer and use it in GitHub Desktop.
Save Pebblo/ac4b410e2c411a5ae2c8128fd8ef770f to your computer and use it in GitHub Desktop.
Template file used to output /people/{person-name}/ and display the related events. This template only pulls in Upcoming events rather than all.
<?php
/**
* Template file to add extra content to a single person display
* Note: To customize, just copy the template from /public/templates/* and put in your theme folder.
*
* @since 1.0.0
* @package EE People Addon
* @subpackage template
* @author Tony Warwick
*/
global $post;
//Get all upcoming events for this person.
$primary_obj_type = 'Event';
$events = [];
$where = [
'PER_ID' => $post->ID,
'OBJ_type' => $primary_obj_type,
'Event.Datetime.DTT_EVT_start' => [ '>', EEM_Datetime::instance()->current_time_for_query('DTT_EVT_start') ],
];
$query = [ $where ];
$object_items = EEM_Person_Post::instance()->get_all($query);
$term_name_cache = [];
if (method_exists(EEM_Event::instance(), 'public_event_stati')) {
$public_event_stati = EEM_Event::instance()->public_event_stati();
} else {
$public_event_stati = get_post_stati([ 'public' => true ]);
foreach (EEM_Event::instance()->get_custom_post_statuses() as $custom_post_status) {
$public_event_stati[] = strtolower(str_replace(' ', '_', $custom_post_status));
}
}
foreach ($object_items as $object_item) {
if (! isset($term_name_cache[ $object_item->get('PT_ID') ]) || ! isset($events[ $term_name ][ $object_item->ID() ])) {
$term_name = EEM_Term_Taxonomy::instance()->get_one_by_ID($object_item->get('PT_ID'))->get_first_related('Term')->get('name');
$related_object = $object_item->get_first_related($primary_obj_type, [ [ 'status' => [
'IN', apply_filters('FHEE__EEH_People_View__get_rel_objects__public_event_stati', $public_event_stati)
] ] ]);
if ($related_object instanceof EE_Base_Class) {
$events[ $term_name ][ $object_item->ID() ] = $related_object;
$term_name_cache[ $object_item->get('PT_ID') ] = $term_name;
}
}
}
?>
<div class="eea-people-addon-person-events-container">
<?php if ($events) : ?>
<h3><?php _e('Events this person is involved with:', 'event_espresso'); ?></h3>
<?php foreach ($events as $type => $event) : ?>
<div class="eea-people-addon-people-type-container">
<h4 class="eea-people-addon-people-type-label"><?php echo $type; ?></h4>
<ul class="eea-people-addon-event-list-ul">
<?php foreach ($event as $evt) : ?>
<li>
<a class="eea-people-addon-link-to-event" href="<?php echo get_permalink($evt->ID()); ?>"
title="<?php printf(__('Click here to view more info about %s', 'event_espresso'), $evt->name()); ?>">
<span class="eea-people-addon-event-name"><?php echo $evt->name(); ?></span></a>
</li>
<?php endforeach; ?>
</ul>
</div>
<?php endforeach; ?>
<?php endif; ?>
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment