Obter lista de todas as barras laterais registradas

17

Estou registrando barras laterais automaticamente para cada categoria (um espaço de widget separado por categoria). A técnica que estou usando está aqui .

No lado do administrador, tenho uma página de opções em que preciso exibir uma lista suspensa de todas as barras laterais registradas ... Existe uma maneira de obter dinamicamente essa lista de barras laterais registradas? desde que eles estão sendo registrados no functions.php, suponho que eles estejam na memória, não no banco de dados.

Eu poderia acompanhar as barras laterais que registro em alguma variável global, mas, caso os plugins registrem suas próprias barras laterais, eu também gostaria de explicá-las.

Vou cavar o núcleo, se for preciso, mas pensei que alguém poderia saber de imediato :)

obrigado

Jonah Goldstein
fonte

Respostas:

22

Hmm ... não tenho certeza se essa é a melhor maneira de fazer isso, mas é simples:

Eu olhei register_sidebar()e descobri que novas barras laterais são simplesmente alinhadas em uma matriz:$wp_registered_sidebars

E acho que é isso. Se algum dia eles mudarem o nome da variável, acho que ficaria ferrado.

Jonah Goldstein
fonte
4
Você sempre pode acessá-lo via $ GLOBALS ['wp_registered_sidebars']. Caso isso mude, no seu plug-in basta executar uma pesquisa e substituir - e não mudou desde que foi introduzido até onde me lembro.
hakre