Remove Widget from WP Sidebar
add_filter('sidebars_widgets', 'hidemywidget');
function hidemywidget($all_widgets) {
// Uncomment to get access to the identifiers we are trying to target
//echo "<pre>";
//print_r($all_widgets);
//echo "</pre>";
//comment the following out and see what happens!
//return $all_widgets;
//this should run on the homepage / frontpage only! you can use more conditions here
if( is_front_page() || is_page() ){
// match to your registered sidebar widget!!!
foreach ($all_widgets['sidebar-1'] as $i => $inst){
//check if the id for the widget to extract exists.
$pos = strpos($inst, 'categories');
if($pos !== false)
{
//remove the archives widget by unsetting it's id
unset($all_widgets['sidebar-1'][$i]);
}
}
}
//comment the following out and see what happens!
return $all_widgets;
}
To do: Target an array of widgets to exclude. Rewrite function to pass vars as arguments of function.
Published on April 13, 2012