First of all, thanks to @toscho for the detailed answer. This is a simple example for those who are searching for a simple solution and default widget options: $active_sidebars = get_option( 'sidebars_widgets' ); //get all sidebars and widgets if(isset($active_sidebars['sidebar-id']) && empty($active_sidebars['sidebar-id'])) { //check if sidebar exists and it is empty $active_sidebars['sidebar-id'] = array('widget_name-1', 'other_widget_name-1'); //add two widgets to sidebar update_option('sidebars_widgets', $active_sidebars); //update sidebars } *Note 1: You can get `sidebar-id` going to widgets menu and inspecting the wanted sidebar. The first `<div id="widgets-holder-wrap">`'s `<div>` child has the `sidebar-id`*. *Note 2: You can get the `widget_name` going to widgets menu and inspecting the wanted widget. You'll see something like `<div id="widget-6_widget_name-__i__" class="widget ui-draggable">`.* I wish it helps.