Obtenir la liste de toutes les barres latérales enregistrées

17

J'enregistre automatiquement des barres latérales pour chaque catégorie (un espace widget séparé par catégorie). La technique que j'utilise est ici .

Dans le côté administrateur, j'ai une page d'options où j'ai besoin d'afficher une liste déroulante de toutes les barres latérales enregistrées ... Est-il possible d'obtenir dynamiquement cette liste des barres latérales enregistrées? car ils sont enregistrés dans functions.php Je suppose qu'ils sont en mémoire, pas dans la base de données.

Je pourrais garder une trace des barres latérales que j'enregistre dans une variable globale, mais juste au cas où les plugins enregistreraient leurs propres barres latérales, j'aimerais aussi en tenir compte.

Je creuserai le cœur si je le dois, mais je pensais que quelqu'un pourrait le savoir :)

Merci

Jonah Goldstein
la source

Réponses:

22

Hmm ... Je ne sais pas si c'est la meilleure façon de le faire mais c'est simple:

J'ai regardé à l'intérieur register_sidebar()et j'ai découvert que les nouvelles barres latérales sont simplement clouées sur un tableau:$wp_registered_sidebars

Et je suppose que c'est ça. S'ils changent jamais le nom de la variable, je suppose que je serais foutu.

Jonah Goldstein
la source
4
Vous pouvez toujours y accéder via $ GLOBALS ['wp_registered_sidebars']. Dans le cas où cela change, vous pouvez dans votre plugin simplement lancer une recherche et remplacer - et cela n'a pas changé depuis qu'il a été introduit pour autant que je me souvienne.
hakre