Give every user the same dashboard layout
Dashboard Columns fixes the WordPress dashboard to a set number of columns, from one to four, for every user, instead of leaving it to whatever Screen Options each person happened to set.
- Choose 1, 2, 3 or 4 columns for the whole site.
- Overrides each user's personal Screen Options preference.
- Applies only to the Dashboard screen itself.
- A consistent layout makes it possible to say "the widget in the top-right".
What does Dashboard Columns do?
When the dashboard_columns module is active, TOWP_Dashboard_Columns runs on the load-index.php hook, the point right before WordPress reads a user's dashboard column preference to build the Screen Options panel. It registers the dashboard's layout_columns screen option with the configured count as its default, then filters get_user_option_screen_layout_dashboard to return that same value for every user, overriding whatever they may have personally set. The result is a fixed column count, from one to four, that applies identically across every account.
The dashboard's layout depends on whoever opened it first
A layout decided by accident on someone's first login rarely matches what the site actually needs.
The default column count is a first-load guess
WordPress decides the dashboard's default column count based on the width of the browser window that first rendered it, which is why the same site can look tidy on one machine and scattered on another.
Screen Options is set once and forgotten
Each user can change their own dashboard columns, but almost nobody revisits that setting, so the layout stays whatever it happened to default to on their first visit.
One column count, for everyone
The module makes the dashboard's layout a site-wide decision instead of a per-user accident.
A single, site-wide setting
Choose 1, 2, 3 or 4 columns once, and every user sees the dashboard laid out the same way.
Overrides the personal preference
The configured count takes priority over whatever a user has set, or never touched, in their own Screen Options.
Makes support and training easier
A dashboard that looks the same for everyone means "the widget in the top-right column" actually means something.
A small setting, applied precisely
Every capability below is present in the supplied PHP class and its settings registration.
One to four, chosen once
A single setting fixes the dashboard's column count for the entire site, clamped between 1 and 4.
Overrides every user's Screen Options
A filter on get_user_option_screen_layout_dashboard returns the configured count regardless of what a user has personally set.
The Dashboard screen only
The module only runs on load-index.php, the Dashboard's own hook, leaving every other admin screen's layout untouched.
Uses WordPress's own screen option system
The count registers through add_screen_option('layout_columns'), the same mechanism WordPress itself uses for the Screen Options panel.
Clamped between 1 and 4
Any stored value gets clamped to WordPress's own supported range before it's used, so an invalid value can't break the dashboard.
Read once per request
The column count is cached after its first read, so a single request never looks it up more than once.
Where a fixed layout helps most
The module supports every site where dashboard consistency actually matters.
Teams sharing one dashboard
Give every team member the same widget layout, so a screenshot or a support instruction matches what everyone else sees.
Onboarding and training
Describe the dashboard consistently in documentation or training material, since the layout won't vary between accounts.
Sites viewed on very different screens
Set a column count that suits the site's typical usage, rather than leaving it to whatever width happened to load the dashboard first.
Consistency that saves confusion
The module makes the dashboard predictable without adding any configuration burden to users.
One screen, one cached read
The verified implementation is scoped so tightly it has no measurable effect anywhere else.
Runs only on the Dashboard screen
The module's hook, load-index.php, only fires when the Dashboard itself is being loaded, not on any other admin page.
One options read, cached
The configured column count is read from the database once and cached for the rest of the request.
No JavaScript involved
The override happens entirely in PHP through a WordPress filter, with nothing to load or run in the browser.
Clamped values, no user input to validate
The code constrains the stored value to a safe range and involves no direct user submission at all.
Value clamped to a safe range
The stored column count is always constrained between 1 and 4 with min()/max(), regardless of what's actually stored in the database.
Administrator-only configuration
Only an administrator with access to TheOneWP settings can change the dashboard's column count.
No user input processed directly
The module reads a single stored integer; there's no user-submitted data for this feature to validate against.
Uses WordPress's own filter, not custom output
The override happens through a documented WordPress filter rather than any custom rendering, keeping the mechanism predictable.
Built around WordPress's own Screen Options system
The supplied code integrates through APIs present in WordPress core. No compatibility claim beyond the verified implementation is assumed.
load-index.php
The module hooks in at the exact point before WordPress reads the dashboard column preference for the Screen Options panel.
add_screen_option('layout_columns')
Column support gets registered through the same WordPress API used natively for the dashboard's Screen Options.
get_user_option_screen_layout_dashboard
The standard WordPress filter for a user's saved dashboard column count, applied identically for every account.
TheOneWP versus common alternatives
Compare the verified Dashboard Columns implementation with WordPress's own default, per-user behaviour.
| Capability | TheOneWP Dashboard Columns | Other common solutions |
|---|---|---|
| Setting a fixed column count | One setting applies to every user immediately | Each user sets their own in Screen Options, or doesn't |
| Consistency across accounts | Guaranteed, since personal preference is overridden | Varies by whoever configured their own dashboard, and when |
| Administration | One setting inside TheOneWP settings | Requires asking each user to change their own preference |
| Scope | Only the Dashboard screen is affected | Not applicable, since core has no site-wide override at all |
Fix the dashboard layout in four steps
Set the column count early, before a team gets used to whatever the default happened to produce.
Enable Dashboard Columns
Activate the module from the TheOneWP Backend settings tab.
Choose a column count
Pick 1, 2, 3 or 4 columns based on how much widget content the dashboard typically carries.
Check the dashboard as different users
Log in as another account, or ask a colleague, to confirm the layout matches across accounts.
Adjust if the widget mix changes
Revisit the column count if plugins are added or removed that change how many dashboard widgets typically appear.
Choose a count that matches the widget load
The right column count depends on how much the dashboard actually has to display, not a fixed rule.
Match the count to the widget load
A dashboard with many active widgets usually reads better with more columns; a lighter one can work fine with fewer.
Set it early in a new site's setup
Deciding the column count before onboarding a team avoids anyone getting used to a layout that later changes.
Mention the layout in onboarding material
Since the dashboard now looks the same for everyone, it's worth describing consistently in any documentation or training.
Revisit after major plugin changes
A newly installed plugin's dashboard widget can shift how many columns actually make sense.
Avoid assumptions that cause confusion
The module's scope is deliberately narrow, and a couple of assumptions are easy to get wrong.
Expecting a per-user Screen Options toggle to still work
Once this module is active, a user's own dashboard column choice in Screen Options no longer has any effect.
Choosing a count without considering widget count
Too many columns for too few widgets can leave the dashboard looking sparse; too few for a lot of widgets can leave it cramped.
Assuming it affects other admin screens
The override is scoped specifically to the Dashboard; every other screen's layout options remain exactly as they were.
Dashboard Columns FAQ
These answers come directly from the verified class and its settings registration.
What does Dashboard Columns do?
It fixes the WordPress dashboard to a set number of columns, from one to four, applying the same layout to every user regardless of their personal Screen Options setting.
Why does the dashboard normally look different for different people?
WordPress sets the default column count based on the width of the browser window that first loaded the dashboard, so it can vary from one machine to another.
Can a user still change their own dashboard columns?
No. Once this module is active, the configured count overrides whatever a user sets, or has already set, in their own Screen Options.
How many columns can I choose?
Any value from 1 to 4, the same range WordPress's own dashboard column system supports.
Does this affect any other admin screen?
No. The module only runs on the Dashboard screen itself, through the load-index.php hook.
What happens if I don't configure a column count?
It defaults to 2, matching WordPress's own default dashboard layout.
Does changing the setting update dashboards that are already open?
It applies the next time each user loads the dashboard, since that's when the column preference gets read.
Is this setting read from the database on every single admin page?
No. It's only read on the Dashboard screen, and cached after that first read for the rest of the request.
Who can change the dashboard's column count?
Only an administrator with access to the TheOneWP settings screen.
Does this module add any JavaScript to the dashboard?
No. The override works entirely through a WordPress filter in PHP, with nothing added on the client side.
Stop letting the dashboard look different for everyone.Fix the layout, once, for the whole team.
Use Dashboard Columns to set a single column count that applies to every user, overriding whatever Screen Options they never touched.

