My pages have a sidebar with too many widgets, and it looks bad when the content is short and the sidebar is too long.

I want to randomize the widgets I’m showing in the sidebar. Meaning I will add all the potential widgets to the sidebar, and it will randomly only display a few.

I would also like some control over this, for example to have a few widgets always appear, and only the rest randomized.

I tried finding relevant plugins, but the only ones I found just randomized images or posts.. never different types of widgets.

2 Answers
2

Here comes the workaround solution discussed in the comments:

functions.php:

add_action( 'widgets_init', 'talfluxive_register_sidebars' );
function talfluxive_register_sidebars() {
    // register five random widget areas
    register_sidebars( 5, array( 'name' => 'Random Widget Area %d' ) );
    // register two fixed widget areas
    register_sidebars( 2, array( 'name' => 'Fixed Widget Area %d' ) );
}

sidebar.php

dynamic_sidebar( 'Fixed Widget Area 1' );
dynamic_sidebar( 'Random Widget Area ' . rand( 1, 5 ) );
dynamic_sidebar( 'Fixed Widget Area 2' );

This example code is very minimal and could be improved in many ways but it works and should serve as a good starting point.

PS: I really like the random widget idea. I will look for a better solution when I have more time. It’s a good plugin inspiration 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *