Reply To: MapPress Show Date and Category on Mashup Pop Ups

Home Forums MapPress Support MapPress Show Date and Category on Mashup Pop Ups Reply To: MapPress Show Date and Category on Mashup Pop Ups

#13777
Chris
Keymaster

    Hi,

    The WP functions that begin with ‘the_’ (like the_time) are really meant to work only on a global current post, in the theme’s “The Loop” section.

    The mashup has its own query so the ‘the_’ functions won’t work. But there are two workarounds:

    1) Find the corresponding WP function that uses a post or post ID instead. For example, instead of the_time(‘F’), call get_the_time(‘F’, $post_id) instead. Not all template functions have a clear analog, for example get_the_category() has to be replaced with get_the_terms().

    2) Save the current post from The Loop, set up the mashup post, and then restore the current post. Then you can use ‘the_’ functions in the mashup.

    Example code for #1:

    <?php
      $post = $poi->get_post();
      if ($post) {
    	echo get_the_time( 'F j, Y', $post) . "<br/>";
    	$terms = get_the_terms( $post->ID, 'category');
    	if (isset($terms[0]))
    		echo $terms[0]->name;
      }
    ?>

    Example for #2:

    <?php
      global $post;
    
      // Save current post from The Loop
      $current_post = ($post) ? clone($post) : null;
    
      $post = $poi->get_post();
      if ($post) {
    	setup_postdata($post);
    	echo the_time( 'F j, Y') . "<br/>";
    	$categories = get_the_category();
    	if (isset($categories[0]))
    		echo $categories[0]->cat_name;
    
    	// Restore original post so we don't interfere with The Loop
    	if ($current_post) {
    		$post = $current_post;
    		setup_postdata($current_post);
    	}
      }
    ?>