Как виджет может вести себя по-разному в зависимости от сайдбара

24 нояб. 2011 г., 16:24:40
Просмотры: 241
Голосов: 2

Если виджет находится в sidebar-1, мне нужно, чтобы он вел себя иначе, чем если бы он был в sidebar-2. Как я могу определить сайдбар, в котором он находится, изнутри функции widget()?

Виджет содержит список ссылок на записи. В зависимости от сайдбара, он должен использовать разные размеры миниатюр.

То, что будет меняться - это название размера изображения. Например, в одном сайдбаре будет использоваться "xs-square-thumb", а в другом - "L-square-thumb".

Пример: get_the_post_thumbnail($post->ID,'xs-square-thumb');

0
Все ответы на вопрос 2
0

Вы можете проверить переменную 'id', которая передается в переменной $args функции widget(), она покажет вам ID области с виджетами, в которой находится текущий виджет.

Пример:

public function widget($args, $instance) {
  if( $args['id'] == 'sidebar-1' ) {
    //действия для сайдбара
  } else {
    //стандартное поведение
  }
}
18 июл. 2012 г. 22:26:45
1

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

  1. Создать две разные версии виджета (это сделает его "защищённым от будущего" в плане возможных названий виджетов).

  2. Добавить флажок в настройки виджета для выбора размера изображения.

24 нояб. 2011 г. 20:48:58
Комментарии

Ответ GSto является правильным.

dwenaus dwenaus
30 мар. 2013 г. 04:03:47