¿Cómo puede un Widget comportarse de manera diferente según la barra lateral?

24 nov 2011, 16:24:40
Vistas: 241
Votos: 2

Si está ubicado en sidebar-1, necesito que mi widget se comporte de manera diferente que si estuviera en sidebar-2. ¿Cómo puedo detectar la barra lateral en la que se encuentra desde la función widget()?

El widget contiene una lista de enlaces a publicaciones. Dependiendo de en qué barra lateral esté, debería usar una versión diferente del tamaño personalizado de su miniatura.

Así que lo que cambiará es el nombre de referencia del tamaño de la miniatura. Por ejemplo, en una barra lateral se usará "xs-square-thumb"; en otra se usará "L-square-thumb".

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

0
Todas las respuestas a la pregunta 2
0

Puedes verificar la variable 'id' que se pasa en la variable $args en la función widget(), te dará el id del área widgetizada en la que se encuentra actualmente.

ej:

public function widget($args, $instance) {
  if( $args['id'] == 'sidebar-1' ) {
    //hacer cosas específicas para la barra lateral
  } else {
    //comportamiento por defecto
  }
}
18 jul 2012 22:26:45
1

no existe una forma limpia de manejar esto, ya que no hay una condición para verificar qué barra lateral está en uso, solo si existe o no. sin embargo, podrías hacer lo siguiente:

  1. crear dos versiones diferentes del widget (lo que lo haría "a prueba de futuro" en cuanto a qué nombres de widgets podrían existir).

  2. agregar una casilla de verificación a las opciones del widget para elegir qué tamaño de imagen usar.

24 nov 2011 20:48:58
Comentarios

La respuesta de GSto es la correcta.

dwenaus dwenaus
30 mar 2013 04:03:47