Получить список всех зарегистрированных боковых панелей

17

Я регистрирую боковые панели автоматически для каждой категории (отдельное пространство виджетов для каждой категории). Техника, которую я использую, здесь .

На стороне администратора у меня есть страница параметров, где мне нужно отобразить раскрывающийся список всех зарегистрированных боковых панелей ... Есть ли способ динамически получить этот список зарегистрированных боковых панелей? поскольку они регистрируются в functions.php, я предполагаю, что они находятся в памяти, а не в базе данных.

Я мог бы отслеживать боковые панели, которые я регистрирую в некоторой глобальной переменной, но на случай, если плагины регистрируют свои собственные боковые панели, я бы тоже хотел учесть их.

Я буду копаться в ядре, если придется, но подумал, что кто-то может узнать из рук вон :)

Благодарность

Иона Гольдштейн
источник

Ответы:

22

Хм ... я не уверен, что это лучший способ сделать это, но это просто:

Я заглянул register_sidebar()и обнаружил, что новые боковые панели просто прикреплены к массиву:$wp_registered_sidebars

И я думаю, что это так. Если они когда-нибудь изменят имя переменной, я думаю, я бы облажался.

Иона Гольдштейн
источник
4
Вы всегда можете получить к нему доступ через $ GLOBALS ['wp_registered_sidebars']. В случае, если это изменится, вы можете в своем плагине просто запустить поиск и заменить - и это не изменилось, так как он был введен, насколько я помню.
hakre