Overriding Single Event Page
In this article, we will explain the process of overriding single event page.
MEC is created by developers for developers! And it’s highly developer-friendly so you can simply override MEC templates in your theme and make it compatible with your theme style or use MEC filters/actions to customize it.
Overriding Single Event Page
With the Overriding Modern Events Calendar Single Event Page feature, as a developer, you can easily adjust themes and customize your website in the best possible way.
MEC has a number of template files in /path/to/modern-events-calendar/templates/, you can simply override them in your theme or child theme.
For instance, place them on the /path/to/theme/single-mec-events.php or /path/to/child-theme/single-mec-events.php.
Note: If you use the lite version of MEC insert -lite after “modern-events-calendar”.Let’s learn how to build an exclusive Single Event Page for our events.
Creating a PHP file in the theme folder
First, create a PHP file in the root folder of your theme named single-mec-events.php.
Then, in coding, call the main WordPress functions of get_header and get_footer.
For example:
get_header();
get_footer();
Now, you can place all your desired content between those 2 functions.
Supported PHP functions
Before getting any necessary fields for MEC, it is worth mentioning that the MEC plugin supports the main functions like getting titles, content, categories, tags, and featured images, however, loading other items needs to be done using the defined functions in
# | Name | Code |
---|---|---|
01 | Title | get_the_title(); / the_title(); |
02 | Content | get_the_content(); / the_content(); |
03 | Thumbnail | the_post_thumbnail(); / the_post_thumbnail(‘full’); |
04 | Tag | get_the_tags(); |
05 | Label | get_terms( array(‘taxonomy’ => ‘mec_label’,’hide_empty’ => false,)); |
06 | Category | get_terms(array(‘taxonomy’ => ‘mec_category’,’hide_empty’ => false,)); |
07 | Event Color | get_post_meta( get_the_ID(), ‘mec_color’, true ); |
08 | Start Date | get_post_meta( get_the_ID(), ‘mec_start_date’, true ); |
09 | Start Hours | get_post_meta( get_the_ID(), ‘mec_start_time_hour’, true); |
10 | Start Minute | get_post_meta( get_the_ID(), ‘mec_start_time_minutes’, true); |
11 | Start AM/PM | get_post_meta( get_the_ID(), ‘mec_start_time_ampm’, true); |
12 | End Date | get_post_meta( get_the_ID(), ‘mec_end_date’, true ); |
13 | End Hours | get_post_meta( get_the_ID(), ‘mec_end_time_hour’, true); |
14 | End Minute | get_post_meta( get_the_ID(), ‘mec_end_time_minutes’, true); |
15 | End AM/PM | get_post_meta( get_the_ID(), ‘mec_end_time_ampm’, true); |
16 | MEC Comment | get_post_meta( get_the_ID(), ‘mec_comment’, true ); |
17 | Read More | get_post_meta( get_the_ID(), ‘mec_read_more’, true); |
18 | More Info | get_post_meta( get_the_ID(), ‘mec_more_info’, true); |
19 | Cost | get_post_meta( get_the_ID(), ‘mec_cost’, true ); |
20 | Event Excerpt | get_the_excerpt(); |
Modern Events Calendar Widgets
If you need to load the MEC’s widgets, please proceed as follows:
You should first add the following code in the PHP file “single-mec-events.php” you placed in the theme’s root directory.
$single = new MEC_skin_single();
$single_event_main = $single->get_event_mec(get_the_ID());
$single_event_obj = $single_event_main[0];
Then call the widgets:
// attendees widget
$single->display_attendees_widget($single_event_obj);
// Booking Module
$single->display_booking_widget($single_event_obj,$single_event_main);
// breadcrumb
$single->display_breadcrumb_widget( get_the_ID() );
// Category Widget
$single->display_category_widget($single_event_obj);
// Cost Widget
$single->display_cost_widget($single_event_obj);
// Countdown Widget
$single->display_countdown_widget($single_event_main);
// Date Widget
$single->display_date_widget($single_event_o
// Export Widget
$single->display_export_widget($single_event_obj);
// Google map widget
$single->display_map_widget($single_event_main);
// Hourly
$single->display_hourly_schedules_widget($single_event_obj);
// Label Widget
$single->display_label_widget($single_event_obj);
// Local Time widget
$single->display_local_time_widget($single_event_obj);
// Location Widget
$single->display_location_widget($single_event_obj); // Show Location
$single->display_other_location_widget($single_event_obj); // Show Additional Locations
// More info widget
$single->display_more_info_widget($single_event_obj);
// next/prev widgets
$single->display_next_prev_widget($single_event_obj);
// Organizer Widget
$single->display_organizer_widget($single_event_obj); // show Organizer
$single->display_other_organizer_widget($single_event_obj); // additional Organizers
// QR widget
$single->display_qrcode_widget($single_event_obj);
// Register Button
$single->display_register_button_widget($single_event_obj);
//Social
$single->display_social_widget($single_event_obj);
// Speakers widget
$single->display_speakers_widget($single_event_obj);
// Time Widget
$single->display_time_widget($single_event_obj);
// Weather Widget
$single->display_weather_widget($single_event_obj);
// Event Hourly Schedule
$single->display_hourly_schedules_widget($single_event_obj);
Report Out Dated Content
If you think the content of this page does not reflect updated information, please let us know.
Anyone idea about displaying custom field?
I’ve tried this but it doesn’t worked
get_post_meta( get_the_ID(), ‘mec_event_data_event_field_1’, true );
Do anyone have find how to get custom field data to single event? Let me know here on reply.
IS there a shortcode for the event post (single event)? I want to be able to use my website skin and header for this page.
Hi
With recurring weekly events (eg. classes), is it possible to have the booking modal date dropdown default to the actual date selected, rather than just the next available?
Hi, working with the modern event calendar light is great! (I’m planning to update to the Pro Version soon!)
I am currently overriding the single-mec-events.php file. I use the widgets described above and some of them are not correctly translated into German, even though the corresponding translation file exists. (I already checked using Poedit.)
The
Hello,
i ve a pb with this two vars : get_post_meta( get_the_ID(), ‘mec_end_time_minutes’, true); get_post_meta( get_the_ID(), ‘mec_start_time_minutes’, true);
when i choose a hour like this in the back office 8:05 AM he returns 8:5 on the front
Other ? is there a var in oder to have the duration of an event ?
Thanks
Hi there
Thank you for contacting us
Please refer to webnus.net/support to create a ticket there.
Our experts will help you with it.