Ottieni l'elenco di tutte le barre laterali registrate


17

Sto registrando le barre laterali automaticamente per ogni categoria (uno spazio widget separato per categoria). La tecnica che sto usando è qui .

Nel lato amministratore ho una pagina di opzioni in cui devo visualizzare un menu a discesa di tutte le barre laterali registrate ... Esiste un modo per ottenere dinamicamente questo elenco di barre laterali registrate? dal momento che sono registrati in Functions.php presumo siano in memoria, non nel database.

Potrei tenere traccia delle barre laterali che registro in una variabile globale, ma nel caso in cui i plugin registrino le loro barre laterali, mi piacerebbe tenerne conto anche.

Scorrerò il nucleo se devo, ma ho pensato che qualcuno potesse saperlo fuori mano :)

Grazie

Risposte:


22

Hmm ... Non sono sicuro che questo sia il modo migliore per farlo, ma è semplice:

Ho guardato dentro register_sidebar()e ho scoperto che le nuove barre laterali sono semplicemente incollate su un array:$wp_registered_sidebars

E immagino che sia quello. Se mai cambiassero il nome della variabile, immagino che sarei fregato.


4
Puoi sempre accedervi tramite $ GLOBALS ['wp_registered_sidebars']. Nel caso in cui cambiasse, nel tuo plugin puoi semplicemente eseguire una ricerca e sostituirla - e non è cambiata da quando è stata introdotta per quanto posso ricordare.
Hacre,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.