What I am trying to do is pre-populate the sidebar widget area with some default widgets on theme activation.
if ( ! dynamic_sidebar( 'sidebar' ) ) :
does add the widgets but it doesnot show up in the sidebar of widgets section and
if ( is_active_sidebar( 'sidebar' ) ) {
this function doesnot work if the widgets are not loaded in the sidebar widgetized area.
I know it is possible but I am just out of idea. I googled but didnot find any solutions. Thank you for any help in advance.
It isn’t clear from your answer if you use the
after_switch_themehook but that the moment you need to set the widgets.To activate the widgets I suggest writing it directly into the database with
get_option('sidebars_widgets')which should give an array, and save it withupdate_option('sidebars_widgets', $new_activated_widgets).This should help you get started.
Tested, just paste it in
functions.phpof your theme.