Stop the login form from shaking at every failed attempt
Disable Login Shake removes the side-to-side shake WordPress plays after a rejected login, without changing the error message itself.
- Removes only the shake animation, not the error message.
- Uses WordPress's own built-in filter for this exact purpose.
- Helps visitors with motion sensitivity avoid an unpleasant animation.
- The one default behaviour a restyled login page usually still carries.
What does Disable Login Shake do?
When the disable_login_shake module is active, TheOneWP adds a single filter on shake_error_codes that returns an empty array, WordPress's own documented way of turning the animation off. Normally, WordPress checks a rejected login's error code against that list and, if it matches, plays the shake; with the list empty, no error code ever matches, so the form stays still. The error message itself is untouched, since the filter only controls the animation, not what gets displayed or why the login failed.
A shaking form reads as a scolding, not just feedback
The animation doesn't explain anything the error message doesn't already say, and it's often the one piece of default WordPress left standing after a full redesign.
It's motion, not information
The shake doesn't add anything the error message doesn't already say; it's WordPress's oldest, most literal way of signaling "no," and it can read as reproach rather than simple feedback.
It's also the one piece of stock behaviour a restyled login page keeps
A login page rebuilt with a custom logo, colors and layout still shakes exactly the way an unstyled WordPress install does, since the animation isn't part of the visual theme at all.
The message stays, the motion goes
The module removes exactly the animation, using the mechanism WordPress itself documents for this purpose.
Only the shake is removed
The error message, its wording and everything else about a failed login attempt stays exactly the same.
Friendlier for motion-sensitive visitors
Removing a repeated horizontal movement is a small but genuine consideration for anyone affected by motion or vestibular sensitivity.
Matches a fully restyled login page
Removing the shake means a custom-branded login page no longer has one leftover piece of stock WordPress behaviour standing out.
One native filter, used exactly as documented
Every capability below is present in the plugin's registration logic and its settings field.
WordPress's own documented filter
Uses shake_error_codes, the filter WordPress core itself provides specifically for controlling which login errors trigger the animation.
Every error code, at once
Returning an empty array means no error code ever matches the shake condition, covering every kind of rejected login in one change.
The error message itself
The filter only controls the animation trigger; the text explaining why a login failed is generated and displayed exactly as before.
A real motion-sensitivity consideration
The shake is a repeated horizontal movement, exactly the kind of animation that can be uncomfortable for people with vestibular or motion sensitivity.
Fits a fully restyled login page
A custom-branded login page built with Custom Login Page keeps one native WordPress behaviour by default; this removes it too.
One filter, nothing else
The entire module is a single conditional filter registration, adding no measurable weight to the login page.
Where removing the shake helps most
The module supports any login page where the animation adds motion without adding meaning.
Motion-sensitive visitors
Remove an animation that can be genuinely uncomfortable for anyone affected by vestibular or motion sensitivity.
Fully custom-branded login pages
Pair it with a restyled login page so no stock WordPress animation stands out against the custom design.
A gentler failed-login experience
Keep the error message clear and informative without the added motion that can make a mistake feel like a scolding.
Clear feedback, without the motion
The module removes exactly one thing, with a genuine accessibility upside and zero added weight.
One filter, nothing else running
The verified implementation is as minimal as a module can be.
A single filter, nothing else
The module registers one filter callback and does nothing further; there's no ongoing processing involved.
No effect when disabled
When the module isn't enabled, the filter is never registered at all, so there's no overhead either way.
No JavaScript changes required
Since the shake is controlled through a native PHP filter, there's no script to load, modify, or remove on the front end.
A visual setting, with no bearing on login security
The filter used here is documented, purely cosmetic, and leaves everything else about login handling untouched.
A documented core filter, not a workaround
shake_error_codes is WordPress's own filter for this exact purpose, not a hack around undocumented behaviour.
Administrator-only configuration
Only an administrator with access to TheOneWP settings can enable the module.
No effect on login security
The filter only controls a visual animation; it has no bearing on authentication, rate limiting, or any other login-security mechanism.
The error message is preserved
Since the filter doesn't touch error generation or display, a failed login is still explained just as clearly as before.
Built entirely around one native WordPress filter
The supplied code integrates through APIs present in WordPress core. No compatibility claim beyond the verified implementation is assumed.
shake_error_codes
The exact filter WordPress core documents for controlling which login error codes trigger the shake animation.
__return_empty_array
A standard WordPress core helper function, used here to clear the list of error codes that would otherwise trigger the animation.
wp-login.php
Applies specifically to WordPress's login screen, the only place this animation is used.
TheOneWP versus common alternatives
Compare the verified Disable Login Shake implementation with writing the equivalent snippet by hand.
| Capability | TheOneWP Disable Login Shake | Other common solutions |
|---|---|---|
| Removing the shake animation | One native filter, applied instantly | Usually a small code snippet added by hand |
| Error message | Left completely unchanged | Same, when done correctly, but requires writing the snippet yourself |
| Accessibility consideration | Explicitly documented as a motion-sensitivity benefit | Rarely framed this way in typical snippets |
| Pairing with a custom login page | A natural companion to full login restyling | Usually a separate, unrelated fix |
| Administration | One toggle inside TheOneWP settings | Requires a code snippet or a dedicated plugin |
Confirm the change in four steps
A quick failed-login test is all that's needed to confirm it worked.
Enable Disable Login Shake
Activate the module from the TheOneWP Login settings tab; there's nothing else to configure.
Trigger a failed login
Attempt to log in with an incorrect password to confirm the form no longer shakes.
Confirm the error message still displays
Verify the explanation for the failed attempt still appears exactly as before.
Leave it on
Since there's no ongoing configuration, the module simply keeps working once enabled.
A small, worthwhile default to change
This is a low-effort change with a genuine, if modest, upside for most sites.
Pair it with a restyled login page
If the login page has been custom-branded, disabling the shake removes the one remaining stock WordPress behaviour.
Consider it as a small accessibility improvement
Treat it as part of a broader effort to reduce unnecessary motion for visitors who are sensitive to it.
Don't expect any change to the error text
The message explaining a failed login stays exactly as WordPress generates it; only the animation is affected.
No further configuration is needed
Since it's a single toggle, there's nothing to revisit once it's enabled.
Avoid assumptions that overstate its scope
The module's scope is intentionally narrow, which is easy to misjudge at a glance.
Expecting the error message to change too
The filter only removes the animation; the wording and content of the login error stay exactly the same.
Assuming it affects login security
The shake is purely visual feedback; removing it has no effect on authentication or any security mechanism.
Looking for a settings screen that isn't there
Like other single-purpose modules, this one is a toggle by design, with no further configuration screen.
Disable Login Shake FAQ
These answers come directly from the plugin's registration logic and its settings field.
What does Disable Login Shake do?
It removes the side-to-side shake animation WordPress plays after a rejected login, using WordPress's own filter for controlling that behaviour.
Does this change the error message shown after a failed login?
No. The error message stays exactly the same; only the shake animation is removed.
How does WordPress normally decide when to shake the login form?
It checks a failed login's error code against a list of codes registered through the shake_error_codes filter; this module empties that list.
Is this a documented WordPress feature, or a workaround?
It's WordPress's own documented filter for this exact purpose, not a hack or an undocumented behaviour.
Does removing the shake affect login security in any way?
No. The animation is purely visual; it has no connection to authentication, rate limiting, or any other security mechanism.
Why would motion matter for a login form?
A repeated shaking movement can be uncomfortable for visitors with vestibular or motion sensitivity, even though the animation itself carries no extra information.
Does this pair with a custom login page design?
Yes. A login page restyled with a custom logo, colors and layout often still carries the default WordPress shake; this removes that one remaining stock behaviour.
Are there any settings beyond turning the module on?
No. It's a single toggle with no additional configuration.
Does this module add any JavaScript to the login page?
No. The shake is controlled through a PHP filter; there's no script involved on either side.
Who can turn this module on?
Only an administrator with access to the TheOneWP settings screen.
Stop shaking the login form at every mistake.Keep the message, remove the motion.
Use Disable Login Shake to remove the animation with WordPress's own built-in filter, leaving the error message exactly as it was.

