Hello!
We use the Events Calendar Plugin and we would like the events posts to also display the Theme View Counter. What code should we add to the single event post template?
Thanks!
Hi,
The theme view counter will count views on default posts and custom post types, but I can’t say if it will work with the events you mention. Maybe you can display the events in a normal post, that way the counter should appear and work.
Or if the events can be implemented by shortcode, you could enter it;s shortcode in the post content of a normal post. We haven’t made any testing with the plugin you mention unfortunately.
Thanks
Hello again. The “events” are actualy a custom post type (called “tribe-events”) and they use their own page template. Is there a function I can insert so that the counter can appear?
For reference, here is the default, uncustomised template file for a single event (called “single-event.php”):
<?php
/**
* Single Event Template
* A single event. This displays the event title, description, meta, and
* optionally, the Google map for the event.
*
* Override this template in your own theme by creating a file at [your-theme]/tribe-events/single-event.php
*
* @package TribeEventsCalendar
* @version 4.6.19
*
*/
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
$events_label_singular = tribe_get_event_label_singular();
$events_label_plural = tribe_get_event_label_plural();
$event_id = get_the_ID();
?>
<div id="tribe-events-content" class="tribe-events-single">
<p class="tribe-events-back">
"> <?php printf( '« ' . esc_html_x( 'All %s', '%s Events plural label', 'the-events-calendar' ), $events_label_plural ); ?>
</p>
<!-- Notices -->
<?php tribe_the_notices() ?>
<?php the_title( '<h1 class="tribe-events-single-event-title">', '</h1>' ); ?>
<div class="tribe-events-schedule tribe-clearfix">
<?php echo tribe_events_event_schedule_details( $event_id, '<h2>', '</h2>' ); ?>
<?php if ( tribe_get_cost() ) : ?>
<span class="tribe-events-cost"><?php echo tribe_get_cost( null, true ) ?></span>
<?php endif; ?>
</div>
<!-- Event header -->
<div id="tribe-events-header" <?php tribe_events_the_header_attributes() ?>>
<!-- Navigation -->
<nav class="tribe-events-nav-pagination" aria-label="<?php printf( esc_html__( '%s Navigation', 'the-events-calendar' ), $events_label_singular ); ?>">
<ul class="tribe-events-sub-nav">
<li class="tribe-events-nav-previous"><?php tribe_the_prev_event_link( '<span>«</span> %title%' ) ?>
<li class="tribe-events-nav-next"><?php tribe_the_next_event_link( '%title% <span>»</span>' ) ?>
<!-- .tribe-events-sub-nav -->
</nav>
</div>
<!-- #tribe-events-header -->
<?php while ( have_posts() ) : the_post(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<!-- Event featured image, but exclude link -->
<?php echo tribe_event_featured_image( $event_id, 'full', false ); ?>
<!-- Event content -->
<?php do_action( 'tribe_events_single_event_before_the_content' ) ?>
<div class="tribe-events-single-event-description tribe-events-content">
<?php the_content(); ?>
</div>
<!-- .tribe-events-single-event-description -->
<?php do_action( 'tribe_events_single_event_after_the_content' ) ?>
<!-- Event meta -->
<?php do_action( 'tribe_events_single_event_before_the_meta' ) ?>
<?php tribe_get_template_part( 'modules/meta' ); ?>
<?php do_action( 'tribe_events_single_event_after_the_meta' ) ?>
</div> <!-- #post-x -->
<?php if ( get_post_type() == Tribe__Events__Main::POSTTYPE && tribe_get_option( 'showComments', false ) ) comments_template() ?>
<?php endwhile; ?>
<!-- Event footer -->
<div id="tribe-events-footer">
<!-- Navigation -->
<nav class="tribe-events-nav-pagination" aria-label="<?php printf( esc_html__( '%s Navigation', 'the-events-calendar' ), $events_label_singular ); ?>">
<ul class="tribe-events-sub-nav">
<li class="tribe-events-nav-previous"><?php tribe_the_prev_event_link( '<span>«</span> %title%' ) ?>
<li class="tribe-events-nav-next"><?php tribe_the_next_event_link( '%title% <span>»</span>' ) ?>
<!-- .tribe-events-sub-nav -->
</nav>
</div>
<!-- #tribe-events-footer -->
</div><!-- #tribe-events-content -->
You could try and copy this line of code in the event template – http://prntscr.com/mxrsx0
Maybe that will work. Or maybe the plugin has a view counter of it’s own that it can display.
Hello again. Thank you for the suggestion. I tried inserting the code you suggested:
<?php echo $td_mod_single->get_views();?>
but then, the page brakes (it displays the page normaly up to the point where the code is but bellow that, everything is blank).
I thought it might also need this:
$td_mod_single = new td_module_single($post);
but then, I get an error like:
wp_booster error:
td_module: td_module_single($post): $post is not WP_Post
/var/www/omorfizoi.gr/htdocs/wp-content/themes/Newspaper/includes/wp_booster/td_module.php
Display backtrace
at the top of the page. Then the counter is displayed, but with 0 views.
Hi,
Unfortunately I can’t test this on my end, maybe more modifications are required to get this to work, if even possible with the events.
If I had a solution I would gladly provide it to you, but we haven’t made any testing with that plugin up to this point. Sorry for the inconvenience.