Support

Account

Home Forums General Issues wp_registered_sidebars is showing an empty array ?.

Solving

wp_registered_sidebars is showing an empty array ?.

  • Hello,

    I am trying to load array $wp_registered_sidebars in my select box but I have no idea why this variable which returns array of sidebar, returning an empty array.

    When same variable is called from template files its returning sidebar array as expected.

    Please help.

    
    global $wp_registered_sidebars;
    
    $sidebar_array = array();
    $dp_sidebars = $wp_registered_sidebars;
    
    foreach ( $dp_sidebars as $sidebar ) {
    	$sidebar_array[$sidebar['name']] = $sidebar['name'];
    }
    
    array (
    	'key'               => 'field_51defba5324c3',
    	'label'             => 'Choose Sidebar',
    	'name'              => 'choose_post_sidebar',
    	'type'              => 'select',
    	'instructions'      => 'Select the sidebar you wish to display on this post. Note: You must first create the sidebar under Appearance > Sidebars.',
    	'conditional_logic' => array (
    		'status' => 1,
    		'rules'  => array (
    			array (
    				'field'    => 'field_51defb45324c2',
    				'operator' => '==',
    				'value'    => 'default',
    			),
    			array (
    				'field'    => 'field_51defb45324c2',
    				'operator' => '==',
    				'value'    => 'right_sidebar',
    			),
    			array (
    				'field'    => 'field_51defb45324c2',
    				'operator' => '==',
    				'value'    => 'left_sidebar',
    			),
    		),
    		'allorany' => 'any',
    	),
    	'choices'       => $sidebar_array,
    	'default_value' => '',
    	'allow_null'    => 0,
    	'multiple'      => 0,
    ),
    

    thanks
    alexsunny

  • When are you calling this code? On what hook?

    By the look of your code you are trying to do this when adding a field group, this should generally be done on the init hook, or preferably on the acf/init hook.

    If you are trying to add your field group before the above hooks are fired then this would be before the widgets_init hook which is when sidebars are generally registered. So you are trying to get the list of sidebars before they exist.

    It would be better to define the field without choices and use an acf/prepare_field filter to populate the choices only when they are needed. But you should still not be defining your field group until acf/init because doing so will cause a premature initialization of ACF that can lead to other problems.

Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic.