Skip to Content

WordPress Widgets Not Showing — Here’s Why

WordPress Widgets Not Showing — Here’s Why

Are you frustrated and confused with WordPress widgets not showing? You are not alone. When updates happen, things can break.

Finding out why is not often easy.

If WordPress had a tech helpline, the enabling and disabling plugins advice would replace the boilerplate tech advice – Turn it off and on again.

Identifying the culprit for the widgets disappearing, or just not ever loading is easier when you know what controls it.

That is the functions.php file, a host of scripts that get run by plugins, and at the database level, user roles and capabilities can be set to deny theme editing capabilities.
 

WordPress widgets not showing

Incompatible plugins may prevent widgets from loading properly. Updates to the WordPress core framework can (and have) prevented widgets loading. The Classic Widgets plugin fixes that. Widgets are controlled by the functions.php file. If that is missing, there will be no widgets to show.
 

Install the Classic Widgets Plugin

WordPress updates can make components like themes and the widget areas in them break. When version 5.8 of WP was rolled out, that happened.

Click on the widgets item on your left menu and you should see the widget area for your theme.

If they either do not load or load with error messages, you need the Classic Widgets plugin.

This is what it looks like when your theme does not support the new widget blocks in version 5.8 and upwards.

You can see the blocks, but nothing loads within them. If they do, error messages may be shown above the blocks telling you the lines of code that are breaking the widgets.

The core WordPress update in version 5.8 had people scrambling to fix the widgets not showing errors.

The WordPress team released the Classic Widgets plugin that restores the widget functionality.

It does state that they plan to maintain the plugin into 2022.

Whether that means the WP Core will be further configured for compatibility or your theme developer needs to update your theme to support the new “widget blocks” is yet to be made known.

For now, the fix for the WordPress widgets not showing on WP version 5.8 and newer installations is to install and activate the Classic Widgets plugin by the WordPress Contributors team.
 

User role issues

The widget area is only accessible by administrators. Editors, Authors, and Contributors will not be able to access the widget area.

For those running a multi-user site, capabilities can be added to user roles, negating the need to issue administrator roles to anyone to control your widgets (and more) site-wide.

As an example, you may want a site editor to be able to edit the sidebar to showcase monthly deals or specials, yet not be hot on the idea of giving editors free rein to everything that administrators can do on WordPress.

Like tinker with your ad units and placements that bring the money in.

For an editor to edit the widgets, they will need a capability added to the user role to permit them to “edit themes”, because the widgets area is theme-specific.
 

The simplest way to to manage user roles is to add the “Members” plugin by MemberPress

Once installed and activated, you can edit the capabilities for any user role or add custom users.

As an example, to grant an editor access to edit the widgets area, go to the “Members” item menu on the right sidebar, click edit for the “editor” role, then “grant” or “deny” capabilities.

Everything on the first menu on the left of the setup page is the items you can see as the administrator. On the right is where to check the box to grant or deny the capabilities you want to set for others.

The widgets are controlled by the WordPress theme, so the permission to “grant” is “Edit theme options”.

Once that is done, other users will be able to load the Widgets area and edit there too.
 

Incompatible plugins or theme issues

Plugins are exceptional for adding features to your site. The problem is, they need to play nice with your theme. When they do not get along, things on your site break.

Like the WordPress widgets not showing, your Google Analytics stops working, or your upload buttons for themes and plugins vanish. Those can happen when JavaScript codes conflict.

Start troubleshooting by switching your theme to the WP default Twenty Twenty-One theme.

It is built by the WordPress team with the cleanest coding possible. Install and activate that theme first, then check to see if the widgets load.

If it still does not show the widgets, re-activate the theme you want to use, then go to your plugins page and deactivate all of your plugins.

For convenience, click on the “active” link to show all of your active plugins, then click the first check box to auto-select every plugin.

Choose the “deactivate” option from the dropdown menu, then click “apply” to deactivate plugins in bulk.

That will disable all of your plugins. Then go back to your widgets page and see if they appear now.

If they do, the next painstaking task is enabling each plugin one at a time, until you find the one that breaks your widget page.
 

Your theme is not widget-aware

This will be rare because very few WordPress themes(if any these days) are not widget-aware, meaning no sidebars are registered. This is more likely to happen on a custom theme that is missing the functions.php file, or no sidebars are registered.

If you have ordered a custom theme, tell your developer to widgetize it.

In WordPress, all widget areas are registered as sidebars. When you experience the WordPress sidebar not showing and you get an error message stating…

“The theme you are currently using isn’t widget-aware, meaning that it has no sidebars that you are able to change.”

… Then widgetizing the theme will be required to get widgets to show.

This will require a functions.php file to be created, the sidebars registered, the theme downloaded, unzipped, and the functions.php file added. Compress the folder again, then upload the updated theme.

The code to register sidebars (widgets) in a theme’s functions.php file is,

add_action( 'widgets_init', 'register_nav_menus' );
function my_register_sidebars() {
/* Register the 'right' sidebar. */
register_sidebar(
array(
'id' => 'right',
'name' => __( 'Right Sidebar' ),
'description' => __( 'A short description of the sidebar.' ),
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
)
);

Given that the functions of WordPress are controlled by the functions.php file, your WP theme really ought to have one.

That is why non-widget-aware themes are a rare issue and only really a problem on custom themes. Like if your developer forgot to include it in the zip file sent to you to upload to your WP site.