我正在开发一个wordpress插件,可以创建一个可以作用于另一个小部件的小部件。我已经搜索但似乎无法找到(如果它存在)一个钩子,它将提供所有活动的小部件实例的详细信息。如果您遇到这个问题,我们将不胜感激。感谢
答案 0 :(得分:13)
get_option('sidebars_widgets')
为您提供了一个关联数组,其中包含每个侧边栏的窗口小部件列表以及所有非活动窗口小部件的列表。
get_option('widget_widgetname')
将为您提供一个关联数组,其中包含您的小部件的所有实例的设置。
答案 1 :(得分:0)
例如从页面中删除小部件
add_filter( 'sidebars_widgets', 'disable_widgets' );
function disable_widgets( $sidebars_widgets ) {
global $qode_options_proya;
//print_r($sidebars_widgets);//gives a list of widgets
if(is_admin()){return $sidebars_widgets;}
if(get_post_meta( get_the_ID(), 'hide_allwidgets_checkbox', true )=="on"){return false; }
if(get_post_meta( get_the_ID(), 'hide_footer', true )=="on"){unset($sidebars_widgets["footer_column_1"]);}
if(get_post_meta( get_the_ID(), 'hide_topmenu_checkbox', true )=="on"){unset($sidebars_widgets["header_top"]); }
return $sidebars_widgets;
}
这可能会因您的主题而异,因此请使用 print_r($ sidebars_widgets); 来验证案例中可用的小部件
答案 2 :(得分:0)
您可以按如下方式获取侧边栏的所有活动小部件:
$sidebars_widgets = get_option( 'sidebars_widgets' );
它将为您提供一个关联数组,其中包含每个侧边栏的小部件列表和所有非活动小部件的列表。