Liste aller registrierten Seitenleisten abrufen

17

Ich registriere Seitenleisten automatisch für jede Kategorie (ein separater Widget-Bereich pro Kategorie). Die Technik, die ich benutze, ist hier .

Auf der Admin-Seite habe ich eine Optionsseite, auf der ich eine Dropdown-Liste aller registrierten Seitenleisten anzeigen muss. Gibt es eine Möglichkeit, diese Liste der registrierten Seitenleisten dynamisch abzurufen? da sie in functions.php registriert sind, nehme ich an, dass sie sich im Speicher befinden, nicht in der Datenbank.

Ich könnte die Seitenleisten verfolgen, die ich in einer globalen Variablen registriere, aber für den Fall, dass Plugins ihre eigenen Seitenleisten registrieren, würde ich sie gerne auch berücksichtigen.

Ich werde den Kern durchgraben, wenn ich muss, aber dachte, jemand könnte es aus der Hand wissen :)

Vielen Dank

Jonah Goldstein
quelle

Antworten:

22

Hmm ... ich bin nicht sicher, ob dies der beste Weg ist, aber es ist einfach:

Ich habe nachgesehen register_sidebar()und festgestellt, dass neue Seitenleisten einfach auf ein Array geklebt werden:$wp_registered_sidebars

Und ich denke das ist es. Wenn sie jemals den Namen der Variablen ändern, würde ich wohl geschraubt werden.

Jonah Goldstein
quelle
4
Sie können jederzeit über $ GLOBALS ['wp_registered_sidebars'] darauf zugreifen. Falls sich dies ändert, können Sie in Ihrem Plugin einfach ein Suchen und Ersetzen ausführen - und es hat sich nicht geändert, seit es eingeführt wurde, soweit ich mich erinnern kann.
Hakre