map('ID', 'SideBarID')->toArray()); // delete orphaned widgets areas $items = WidgetArea::get()->exclude('ID', $wIDs); foreach ($items as $i) { $i->delete(); } // reset empty widget areas foreach ($pages as $p) { $w = $p->Sidebar(); if (!$w->ID) { $p->setField('SideBarID', '0'); $p->write(); continue; } $widgets = $w->Widgets(); if (!$widgets->count()) { $w->delete(); $p->setField('SideBarID', '0'); $p->write(); } } die('Done!'); } }