Código activación widget
-
Buenas tardes:
En ficheros php de wordpress y relacionado con widgets, existen funciones en el código de este tipo:
if ( is_active_sidebar( 'above-header-right' ) ) : dynamic_sidebar( 'above-header-right' ); endif;
Es decir, si el widget está activo, se ejecuta la función.
Mi pregunta es, ¿con qué código se sabe si un widget está activo o no? es decir, ¿cómo sabe la función anterior (a nivel de código) si un widget está activo o no?
Gracias
-
Puedes ver la función en Code Reference.
- Esta respuesta fue modificada hace 6 años, 6 meses por almendron.
Lo que hace ese código no es comprobar si un widget está activo, sino comprobar si un sidebar determinado tiene algún widget activo, y lo hace con la función
wp_get_sidebars_widgets()
.Si quieres comprobar si un widget en concreto está activo, puedes utilizar
is_active_widget()
.- Esta respuesta fue modificada hace 6 años, 6 meses por cybmeta.
No estoy tratando de ver una función que compruebe si un widget concreto está activo o no, lo que necesito saber es qué pasa a nivel de código cuando un widget está activo (o no activo), esto es, qué elemento de código se marca cuando un widget lo está.
Gracias
Los widgets se asocian a sidebars y ya está, no hay nada que los marque como activos o inactivos de forma específica. Si un sidebar tiene algún widget asociado, entonces el widget y el sidebar están activos. A mi entender, no puedes tener un widget inactivo en un sidebar, no existe ese concepto en WordPress.
Con la notable excepción del sidebar
wp_inactive_widgets
. Los widgets asociados a este sidebar se interpretan como inactivos, pero en verdad no están marcados de ninguna forma especial, ni a nivel de código ni a nivel de base de datos. Solo que están asociados a ese sidebar «especial».Espero que esto responda a tu duda.
pero cuando arrastro un widget de la zona de inactivos a la de activos, ¿qué ocurre a nivel de código?
GraciasAl arrastrar un widget «nuevo» a un sidebar (sea cual sea el sidebar), o si pulsas el botón «Guardar» en un widget ya existente, se ejecuta esta función: https://developer.wordpress.org/reference/functions/wp_ajax_save_widget/
Si mueves un widget de un sidebar a otro (sean cuales sean los sidebars), o lo cambias de posición dentro de un mismo sidebar, se ejecuta esta función: https://developer.wordpress.org/reference/functions/wp_ajax_widgets_order/
Ambas utilizan
wp_set_sidebars_widgets()
para guardar los sidebars y los widgets correspondientes.Lo importante para diferenciar widgets inactivos del resto es saber que la zona «inactivos» es un sidebar más como cualquier otro y que el identificador de este sidebar es
wp_inactive_widgets
.Lo siento pero no soy capaz de darte una respuesta más específica, después de varias preguntas y respuestas no estoy seguro entender bien lo que buscas. Igual podrías poner un ejemplo de los que quieres hacer, el código que intentas utilizar y el resultado que esperas obtener de ese código pero no consigues, creo que así te podríamos responder mejor.
Doy por resuelto el hilo ya que @cybmeta ha ofrecido las correspondientes explicaciones.
- El debate ‘Código activación widget’ está cerrado a nuevas respuestas.