How could a Widget behave differently depending on sidebar

if sitting on sidebar-1, I need my widget to behave differently than if it were on sidebar-2. How can i detect the sidebar it is sitting on from within the widget() function?

The widget contains a list of links to posts. Depending on which sidebar, it should use a different custom image size version of its thumbnail.

Read More

So what will change is the thumbnail size reference name.
For instance, in one sidebar, “xs-square-thumb” will be used; in another “L-square-thumb” will be used.

Ex: get_the_post_thumbnail($post->ID,'xs-square-thumb');

Related posts

Leave a Reply

2 comments

  1. there isnt a clean way of handling this, since there isn’t a conditional for checking which sidebar is in use, just whether or not it exists. however, you could do the following:

    1. make two different versions of the widget (which would make it “future proof” in regards to what widget names could exist).

    2. add a checkbox to the widget options to choose which size image to use.

  2. You can check the ‘id’ variable that is passed in the $args variable in the widget() function, it will give you the id of the widgitized area it is currently in.

    ex:

    public function widget($args, $instance) {
      if( $args['id'] == 'sidebar-1' ) {
        //do sidebar stuff
      } else {
        //default behavior
      }
    }