WordPress.org

Ready to get started?Download WordPress

Forums

Creating a shortcode inside a widget (2 posts)

  1. McGuive7
    Member
    Posted 9 months 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?

    Thanks!
    - Mickey

  2. ianhaycox
    Member
    Posted 9 months 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.

Reply

You must log in to post.

About this Topic