2

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.

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');

2 Answers 2

2

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.

1
  • 1
    GSto's answer is the correct one.
    – dwenaus
    Mar 30, 2013 at 2:03
4

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
  }
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.