Use the sample code on this page as an example of how to include Groundplan fields in your theme.



Groundplan fields can be accessed using the get_field() or the_field() functions by referencing the appropriate field ID. They are also saved as Post Meta, and can be displayed using core WP functions like get_post_meta if you prefer.


Make a copy of your theme's single.php file and save it as single-mc_event.php in your theme folder.


Paste and adapt the following code to fit your design.

This code is only a typical approach to content on an event page.  For additional fields, refer to the Customizing Event and Venue Fields article.


<?php
/* single-mc_event.php
 * Template for displaying all single posts.
 */
?>
 
<!-- ENTER YOUR HEADER HTML HERE -->
 
<?php
// Load Performances into your $post object for displaying the single calendar
if (function_exists('xdgp_load_all')) xdgp_load_all(array('connections' => true, 'connection_meta' => true, 'connected_post_meta' => false));
 
// Display the cover image for the Event
$cover_image = get_field('cover_image');
 
// Example using srcset for responsive images.
echo '<img class="img-responsive" src="'.$cover_image['url'].'" alt="" srcset="'.$cover_image['sizes']['medium'].' 300w, '.$cover_image['sizes']['large'].' 640w">';
?>
 
<!-- Event Title -->
<h2 class="event__title">
  <?php the_title();  ?>
</h2>
 
<!-- Byline -->
<div class="event__byline">
  <?php the_field('byline') ?>
</div>
 
<!-- Date Range -->
<p class="event__dates">
  <?php the_field('display_dates_long') ?>
</p>
                           
<?php
 
// Display "Buy Tickets" link if a URL is set and the show hasn't closed yet ($post->status)
$post->ticket_url = get_field('ticket_url');
$post->status = xdgp_get_event_status($post);

// Calculate a Postponed, Cancelled, Rescheduled, or Sold Out label for a buy tickets button depending on your event status.
$event_object = new XDGPEvent($post->ID, $post, true);
$sold_out_text = ($post->status == 'sold-out') ? $event_object->get_status_label() : '';
$post->sold_out_message = (!empty($post->sold_out_message)) ? 'Sold Out' : $sold_out_text;
 
// Calculate the ideal general ticket url for single performance, closed, or multi-performance events
// Returns false when the event is closed
// Returns Performance Ticket URL when the event only has one performance
// Otherwise defaults to the General Ticket URL set above from the field.
$post->ticket_url = xdgp_event_general_ticket_url($post);
 
// If Tickets are on sale:
if (!empty($ticket_url) && $post->status != 'closed'):
  ?>
  <p><a class="btn btn-primary" href="<?php echo $ticket_url ?>">Buy tickets</a></p>
  <?php
endif; // endif tickets are on sale.
 
// Display Price range if a value is set
// $post->price_range and other event fields is set by xdgp_load_all()
echo (!empty($post->price_range)) ? '<p class="event__pricing">'.$post->price_range.'</p>' : '';
 
// Display Event notes, like Running time and Disclaimer, if values are set.
echo (!empty($post->running_time)) ? '<p class="event__running-time">Running Time: '.$post->running_time.'</p>' : '';
 
echo (!empty($post->disclaimer)) ? '<p class="event__disclaimer">'.$post->disclaimer.'</p>' : '';
 
 
?>
 
<div class="event__description">
  <?php the_field('long_desc') ?>
</div>
 
<?php
 
if ($post->status != 'closed') {
  echo '<h3>Schedule</h3>';
  // Display a "single" style calendar for only this show.
  // For full configuration options, refer to https://nickxd.atlassian.net/wiki/x/IYBpAg
  $sold_out_message = (!empty($post->sold_out_message)) ? $post->sold_out_message : 'Sold Out';
  $args = array(
    'format' => 'F Y',
    'week_start' => 0,
    'show_genre' => false,
    'genre_taxonomy' => 'xdgp_genre',
    'wrapper_class' => 'example-calendar-class',  // Modify this class to set CSS styles for the calendar in your theme
    'show_all' => true,
    // 'event_post' => false,
    'type' => 'agenda', // 'single', 'all', or 'agenda'
    'performances' => $post->performances,
    // 'pad' => false,
    // 'show_days' => false,
    'buy_text' => 'Buy Tickets',
    'fast_forward' => true,
    'priority' => 'tickets', // can be 'tickets' or 'details'
    // 'perfs' => false,  //override perfs array
    'sold_out_message' => $sold_out_message,
  );
 
 
  $calendar = new XDGPCalendar($args);
  echo $calendar->xdgp_display_calendar();
}
 
?>
      
      
<!-- ENTER YOUR FOOTER HTML HERE -->