Mám několik vlastních widgetů, které jsou nainstalovány jako součást mého tématu. Chtěl bych provést podmíněný kód uvnitř každého administrátorského panelu widgetu (ne veřejnost, zajímám se o administrátorský panel uvnitř funkčního formuláře ($ intance)), v závislosti na tom, na kterém bočním panelu je widget vložen.
Jak mohu získat odkaz na aktuální idid sidebar, který obsahuje miniaplikaci, z popisovače funkcí widgetu ($ instance)?
Pokud vaše widgety používají rozhraní widget, měli byste ve třídě widgetů použít následující metodu ...
function widget($args, $instance){
//output html here...
}
$args['id']
bude obsahovat ID aktuálního postranního panelu.
Pokud má váš postranní panel název, můžete jeho název načíst pomocí get_sidebar( $name )
uvnitř samotného widgetu zkuste toto:
global $wp_registered_widgets, $wp_registered_sidebars;
$sidebars_widgets = get_option('sidebars_widgets');
if($sidebars_widgets["sidebar-1"]) echo 'hooray';
Obávám se, že neexistuje snadný způsob, jak to udělat, pokud jde o WP 3.2. Obecně platí, že admin widget obrazovky není příliš rozšiřitelný.
Budete muset pouze vytvořit dvě třídy widgetů a instruovat uživatele, kam se mají umístit.