Obtenga una lista de todas las barras laterales registradas

17

Estoy registrando barras laterales automáticamente para cada categoría (un espacio de widget separado por categoría). La técnica que estoy usando está aquí .

En el lado del administrador tengo una página de opciones donde necesito mostrar un menú desplegable de todas las barras laterales registradas ... ¿Hay alguna manera de obtener dinámicamente esta lista de barras laterales registradas? ya que están registrados en functions.php, supongo que están en la memoria, no en la base de datos.

Podría hacer un seguimiento de las barras laterales que registro en alguna variable global, pero en caso de que los complementos registren sus propias barras laterales, también me gustaría tenerlas en cuenta.

Examinaré el núcleo si es necesario, pero pensé que alguien podría saberlo de antemano :)

Gracias

Jonah Goldstein
fuente

Respuestas:

22

Hmm ... no estoy seguro de si esta es la mejor manera de hacerlo, pero es simple:

Miré register_sidebar()y descubrí que las nuevas barras laterales simplemente se agregan a una matriz:$wp_registered_sidebars

Y supongo que eso es todo. Si alguna vez cambian el nombre de la variable, supongo que estaría jodido.

Jonah Goldstein
fuente
44
Siempre puede acceder a través de $ GLOBALS ['wp_registered_sidebars']. En caso de que eso cambie, puede en su complemento simplemente ejecutar una búsqueda y reemplazar, y no cambió, ya que se ha introducido hasta donde puedo recordar.
Hakre