Support » Plugin: Events Manager » Nav pagination by date not event id

  • Hi

    The navigation pagination at the bottom of the event page displays previous/next event by the event id. I assume this is part of EM and not built into WordPress?

    How would I go about changing it to display by previous/next event by date?

    Thanks

    The page I need help with: [log in to see the link]

Viewing 15 replies - 1 through 15 (of 16 total)
  • Hi Will,
    EM user here too.

    No…
    EM does not have it’s own post navigation (prev/next). That is controlled by your theme, which uses to post ID to order the posts (and custom post types, like events).
    For most themes the main rule is: “Posts have navigation, pages do not”.

    To get correct event navigation, you will need custom coding, telling your website that it needs to look at the custom field “event_start_date”.

    I have written a tutorial about that a while back. 😉
    Check it out here:
    [ deleted ]

    The link contains no adds, cookies or tracking. 😉

    Thread Starter Will Pom

    (@wi77p0m)

    Hi @duisterdenhaag

    Thanks for that. As a person who has no coding experience other than muddling by can I ask where in the functions.php I should put it? Just append to the end? I did that am not sure if I have the intended output. It has put another navigation above the theme navigation consisting just of
    <Previous
    Next>

    I had a search through the theme style.css and noticed it refers to .post-nav-links rather than .post-navigation Would it be the case of modifying these to reflect?

    PS. Thanks for your OSM Location map. I use WP-GPX-Maps to display routes. FYI I can’t display both that and the location map on the event page as I guess there is some leaflet faceoff occurring. Not a problem for me as if a user clicks on the location link all is revealed.

    Thread Starter Will Pom

    (@wi77p0m)

    If I put your css at the end of the style.css it excludes <Previous but shows Next> to the right.

    Thread Starter Will Pom

    (@wi77p0m)

    The above appears to only happen on pages that have the site review (which I’m working on to be on all event pages)

    • This reply was modified 2 years, 5 months ago by Jan Dembowski.

    where in the functions.php I should put it?

    See the link in Step 1 by hovering ver “functions.php”. It will take you to a page explaining how to safely add code to WordPress. 😉

    Following your link, “Previous” does appear in Chrome, but not in Safari. Strange…

    However, since your theme has its own navigation as well, you can use that css.
    Change the snippet (in your case) to this:

    	// Using EM arguments makes it easier to filter the search results.
    	// See https://wp-events-plugin.com/documentation/event-search-attributes/
    	$args = array(
    		'status' 	=> '1',					// Only active events (not 'Pending').
    		'scope' 	=> 'future',			// Only upcoming events.
    		'orderby' 	=> 'event_start_date',
    		'blog' 		=> 'all',				// Only applicable for MultiSite.
    	);
    	$EM_Events 		= EM_Events::get($args, $count = false);
    	$found_ids 		= array();
    	foreach( $EM_Events as $EM_Event ) {
    		$found_ids[] = $EM_Event->post_id;
    	}
    	$current_post	= get_the_ID();
    	$current_key 	= array_search($current_post, $found_ids);
    	$next_key 		= $current_key + 1;
    	$next_post 		= $found_ids[$next_key];
    	$prev_key 		= $current_key - 1;
    	$prev_post 		= ($prev_key > 0) ? $found_ids[$prev_key] : '';
    
    	// Start output of the shortcode.
    	$output  = null;
    	$output .= '<nav class="pagination-single section-inner" role="navigation">';
    	$output .= '<div class="pagination-single-inner">';
    	if( $current_key != 0 ) {
    		$output .= '<div class="previous-post"><a href="'. get_permalink($prev_post) .'">⇐ '. __('Previous') .'</a></div>';
    		}
    	if( $current_key != (count( (array) $found_ids) -1) ) {
    		$output .= '<div class="next-post"><a href="'. get_permalink($next_post) .'">'. __('Next') .' ⇒</a></div>';
    		}
    	$output .= '</div>';
    	$output .= '</nav>';
    	return $output;
    }
    add_shortcode('event-navigation', 'stonehenge_get_event_navigation');
    Thread Starter Will Pom

    (@wi77p0m)

    **UNSUBSCRIBERS – Just set up an email filter to move to all [WordPress.org Forums] emails to a different folder other than your inbox. Run manually on the folder they are in now to clear it. Manage from there…

    @duisterdenhaag thanks again.

    Brain fart moment, the Wells, Mells & Broader 200 event is the next most recent, that is why it doesn’t display previous…

    Used Code Snippets.

    It does float to the left though and not the right. I’ve changed the scope to all anyway so past are displayed too; as well as only a specific category.

    $args = array(
    		'status' 	=> '1',					// Only active events (not 'Pending').
    		'scope' 	=> 'all',               // Specify past, future or all events.
    		'category'  => 'cal-event',         // Specify category.
    		'orderby' 	=> 'event_start_date',
    		'blog' 		=> 'all',				// Only applicable for MultiSite.

    It doesn’t replace the theme’s pagination though just adds a new one above. Do you think it is possible to do this so not as cluttered; creating a child theme? I’m in the process of converting my blog to TwentyTwenty and moving it over so would like to keep the usual pagination for that, then again I don’t add posts chronologically there either. May be this is more of a question to be asked in TwentyTwenty support.

    If this isn’t possible is there a way of replacing the ‘Previous’/’Next’ with the event title? Possibly with the event date included?
    I’m guessing it would have something to do with the permalink title & associated date being displayed here?
    <a href="'. get_permalink($prev_post) .'">⇐ '. __('Previous') .'</a>

    Added alignwide to mimic theme navigation in the meantime.
    $output .= '<nav class="pagination-single section-inner alignwide" role="navigation">';

    I’m going to have to buy a book and learn about this code stuff…

    • This reply was modified 2 years, 5 months ago by Will Pom.
    • This reply was modified 2 years, 5 months ago by Will Pom.
    Moderator Jan Dembowski

    (@jdembowski)

    Forum Moderator and Brute Squad

    Side note: @duisterdenhaag Don’t share links to your tutorials, that can be construed as spamming. If you want to help then do so here.

    @jdembowski, that is exactly why I had added “The link contains no adds, cookies or tracking.” 😀

    I am just trying to understand. 😉
    Could you please explain why links to Code Tuts and other commercial tutorial sites are allowed, while my link needs to be removed? Not arguing the removal, just would like to understand the difference.

    Moderator Jan Dembowski

    (@jdembowski)

    Forum Moderator and Brute Squad

    How do you think this looks?

    Here’s a link to a 3rd party site. I didn’t write it but it helped me a great deal. Maybe it will help you too.

    [ link ]

    Versus

    To get correct event navigation, you will need custom coding, telling your website that it needs to look at the custom field “event_start_date”.

    I have written a tutorial about that a while back. 😉
    Check it out here:
    [ link ]

    The link contains no adds, cookies or tracking. 😉

    This isn’t hard and yes, sometimes appearances matter. Don’t send users to your site, help them here as I wrote.

    If you needs further explanation then feel free to all the moderators in the #forums channel on the WordPress Slack.

    If you do use Slack, do not direct message me or any other moderator. Use the #forums channel, that’s what it’s there for.

    You’ll need an account and to get one follow these instructions.

    https://make.wordpress.org/chat/

    Thank you for the reply, @jdembowski.
    I will just not help out anymore.

    Thread Starter Will Pom

    (@wi77p0m)

    @karen-wehrstein that has nothing to do with me or this topic. Perhaps you need to take it up with the Forum

    @duisterdenhaag I thank you unreservedly for your input and value the information from your tutorial and subsequent specific follow up.

    @jdembowski I do believe the link Patrick provided was to his site as he is the contributor to Stonehenge Creations, as can be seen by his plugins for Events Manager. It directed me to generic information on this topic that may be useful to others. Patrick then went on to give me specific information for my needs. I’m unsure why you have singled him out other than the bleating of a couple of others over their inability to unsubscribe from a topic within the WordPress Forums. Seems harsh!

    Thread Starter Will Pom

    (@wi77p0m)

    For the record

    Here’s a link to a 3rd party site (as Patrick provided). I didn’t write it but it helped me a great deal. Maybe it will help you too.

    https://www.stonehengecreations.nl/correct-event-navigation-prev-next-on-single-events/

    @wi77p0m, would you be so kind to send me a message [removed]

    • This reply was modified 2 years, 5 months ago by James Huff.
    • This reply was modified 2 years, 5 months ago by James Huff.
    Moderator James Huff

    (@macmanx)

    Volunteer Moderator

    @duisterdenhaag Again, please keep support on the forums here.

    Thread Starter Will Pom

    (@wi77p0m)

    Thanks Patrick I will do as I understand why you may feel despondent with this forum at the mo. Your original response was neither irrelevant, unsolicited or sent indiscriminately to a large number of users, for the purposes of advertising, phishing, spreading malware, etc.
    Nor was it a tinned meat product made mainly from ham.

    All seems a bit brutish!

Viewing 15 replies - 1 through 15 (of 16 total)
  • The topic ‘Nav pagination by date not event id’ is closed to new replies.