Support

Home Forums Event Espresso Premium Modifying Past Events page

Modifying Past Events page

Posted: October 11, 2013 at 1:01 pm


Tom Semmes

October 11, 2013 at 1:01 pm

I found a great resource for creating a page that lists only past events
https://eventespresso.com/topic/why-is-the-past-events-page-showing-all-events-both-past-and-future/
Any chance you could show me how to modify it to include the date as well as the event title?
http://new.asisnyc.org/events/past-meetings/

I am using most current version of WordPress and Event Espresso


Dean

October 14, 2013 at 2:57 am

Hi,

The $pastevent is an array of the event details, so you can echo/add $pastevent->start_date

eg

<?php
/*
Template Name: Past Events
*/
?>
<ul>
<?php 
global $wpdb;
$tablename = $wpdb->prefix . events_detail;
$pastevents = $wpdb->get_results("SELECT * FROM $tablename WHERE start_date < curdate() AND event_status <> 'D' ");
 foreach ( $pastevents as $pastevent ){
 echo '<li><a href="' . espresso_reg_url($pastevent->id) . '">' . stripslashes($pastevent->event_name) . ' - ' . $pastevent->start_date . '</a></li>';
 }
?>
</ul>

I haven’t tested it, but you will probably need to reformat the date as it is likely to spit it out like 2013-10-14.

date(‘d-m-Y’, $pastevent->start_date) should work, see here for more info http://php.net/manual/en/function.date.php


Tom Semmes

October 14, 2013 at 10:26 am

Thanks Dean
Just replace
$pastevent->start_date
with
date(‘d-m-Y’, $pastevent->start_date)
?
This doesn’t seem to work for me but maybe I am doing something wrong.


Tom Semmes

October 14, 2013 at 10:35 am

Got it! the code I wanted is actually
date("F j, Y", $pastevent->start_date)
I am feeling so smart right now…. 🙂


Tom Semmes

October 14, 2013 at 10:39 am

Oops! Right formatting but it reverts to a date of something like January 1, 1969 and not the date of the event. Guess I could use your help after all. Any idea how to correctly write the PHP for this?


Josh

  • Support Staff

October 14, 2013 at 11:22 am

php date() needs a string or a timestamp in order to work. In this case you can use date_create and date_format. Here’s a revised loop that displays the date using date_create and date_format:

foreach ( $pastevents as $pastevent ){
 	$my_event_date = date_create($pastevent->start_date);
 	echo '<li><a href="' . espresso_reg_url($pastevent->id) . '">' . stripslashes($pastevent->event_name) . ' - ' . date_format($my_event_date, 'F j, Y' ) .'</a></li>';
 }


Tom Semmes

October 14, 2013 at 2:10 pm

Thanks Josh

The support post ‘Modifying Past Events page’ is closed to new replies.

Have a question about this support post? Create a new support post in our support forums and include a link to this existing support post so we can help you.

Event Espresso