• I had initially wrote a shortcode that displayed author profiles based on id. For example [user-profile id="1"] would display the profile block for author 1. It worked. I was able to use it multiple times within a page.

    function user_profile( $atts, $content = null ) {
    extract(shortcode_atts(array('id' => ''), $atts));
    include ('user-profile.php');
    }

    …but since the shortcode output was showing up before other entry content regardless of its place in the code (same issue here) I added the fix described here:

    function user_profile( $atts, $content = null ) {
    	extract(shortcode_atts(array('id' => ''), $atts));
    	function get_user_profile() {include ('user-profile.php');}
    	ob_start();
    	get_user_profile();
    	$output_string=ob_get_contents();
    	ob_end_clean();
    	return $output_string;
    	}

    …which worked to solve the positioning problem but broke multiple instances of the shortcode. [user-profile id="1"] works but [user-profile id="1"] [user-profile id="2"] breaks it—the page just stops loading at that point.

    The html/php in user-profile.php is viewable here.

    How can I modify the shortcode function to allow multiple instances?

Viewing 3 replies - 1 through 3 (of 3 total)
  • Thread Starter ryanve

    (@ryanve)

    Problem solved!

    I updated the code in user-profile.php code so that it was all PHP and did not use any echos. Then I changed the shortcode function to:

    function user_profile( $atts, $content = null ) {
    	extract(shortcode_atts(array('id' => ''), $atts));
    	include ('user-profile.php');
    	return $user_hcard;
    	}

    I can now use the shortcodes wherever needed:

    [user-profile id="1"]
    [user-profile id="2"]
    ...

    Nothing but net!

    Thread Starter ryanve

    (@ryanve)

    Now the only thing I’m wondering is if there’s a way to set the ID to be the $post->ID by default so that if [user-profile] was used without specifying an ID, then it would still work. Any ideas?

    Thread Starter ryanve

    (@ryanve)

    Solved that too—see this thread.

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Multiple Instances Breaks Shortcode’ is closed to new replies.