Как виджет может вести себя по-разному в зависимости от сайдбара
Если виджет находится в sidebar-1, мне нужно, чтобы он вел себя иначе, чем если бы он был в sidebar-2. Как я могу определить сайдбар, в котором он находится, изнутри функции widget()?
Виджет содержит список ссылок на записи. В зависимости от сайдбара, он должен использовать разные размеры миниатюр.
То, что будет меняться - это название размера изображения. Например, в одном сайдбаре будет использоваться "xs-square-thumb", а в другом - "L-square-thumb".
Пример: get_the_post_thumbnail($post->ID,'xs-square-thumb');
Вы можете проверить переменную 'id', которая передается в переменной $args
функции widget(), она покажет вам ID области с виджетами, в которой находится текущий виджет.
Пример:
public function widget($args, $instance) {
if( $args['id'] == 'sidebar-1' ) {
//действия для сайдбара
} else {
//стандартное поведение
}
}

Нет чистого способа обработки этой ситуации, так как нет условной проверки на то, какая боковая панель используется, только на факт её существования. Однако можно поступить следующим образом:
Создать две разные версии виджета (это сделает его "защищённым от будущего" в плане возможных названий виджетов).
Добавить флажок в настройки виджета для выбора размера изображения.
