Creating a shortcode inside a widget (2 posts)

  1. Mickey Kay
    Posted 3 years ago #

    Hi there,

    I've created a shortcode I'd like to use in a widget, however it's behaving a bit wonky and I can't figure it out. Here's the code in functions.php:

    function related_content( $atts ) {
    	return get_the_ID();
    add_shortcode('related-content', 'related_content');

    The problem is that if I embed this shortcode in a page, it does indeed spit out the correct ID of that page. However if I embed the code in a sidebar widget, it spits out a different ID entirely (it happens to be the ID of my blog page in this case). Any thoughts on why this is happening? Is there something about the context in which the shortcode is being called inside a widget? Any ideas?

    - Mickey

  2. ianhaycox
    Posted 3 years ago #

    get_the_ID() is only applicable within The_Loop and Widgets are not displayed in the loop.

    See http://codex.wordpress.org/Function_Reference/get_the_ID

    What ID were you expecting or wanting in the Widget ? E.g. you may have a single page or post displayed or there may be a list of posts.

Topic Closed

This topic has been closed to new replies.

About this Topic