Generic Login Error Message
Shows the same error for a wrong username and a wrong password, so the login form does not reveal which usernames exist.
Snippet Library
3,040 free snippets from the WPIDE team and the community. Copy the code, or add any snippet to your site in one click with WPIDE.
Shows the same error for a wrong username and a wrong password, so the login form does not reveal which usernames exist.
Rejects REST API and XML-RPC logins made with application passwords unless they come from the IP addresses or networks you list, such as your office, CI server or integration partner.
Emails the site admin whenever someone requests a password reset for an administrator account, an early warning sign of an attempt to take over the site.
Emails the site's admin address whenever any administrator account changes its email address or password, a key warning sign of an account takeover.
Turns on Application Passwords for local and development copies of the site that run on plain http, so you can test REST API integrations and apps locally the same way as in production.
Keeps Application Passwords available for administrators (for integrations and apps) but removes them for every other user.
Adds a "Current password" field to the profile screen and refuses changes to your own email address or password unless it is correct, so someone using an unattended logged-in browser cannot take over the account.
Requires administrators to log in again before opening plugin, theme, user and update screens when their login is older than 30 minutes, so a hijacked session cannot quietly install code or add users.
Adds the right autocomplete attributes to Contact Form 7 name, email, phone and company fields, so browsers and password managers can fill them in one tap.
Rejects the most common passwords, and passwords containing the username or site name, when users set or reset their password.
Refuses login, password reset and registration requests sent by tools such as curl, wget, python-requests or empty user agents, which real browsers never use and brute-force scripts often do.
Disables the "Lost your password?" flow for administrator accounts, which closes off reset-email based takeovers of the most powerful accounts.
Checks new passwords against the Have I Been Pwned database of breached passwords when users change or reset them, and asks for a different one if it appears there.
Adds a hidden BCC to every email the site sends, so you keep a copy of password resets, orders and form notifications in one mailbox.
Replaces the standard "This content is password protected" sentence with your own message, for example explaining how to get the password.
Ignores filler words such as "can", "my" or "need" in multi-word searches, so "how can I reset my password" finds posts about resetting passwords.
Rewrites the email new users receive with their login details, using your own subject and greeting while keeping the secure link to set a password.
Removes the Application Passwords feature, which lets external apps authenticate to the REST API. Disable it if you do not use it.
Turns off the "Lost your password?" feature for all users, for sites where accounts are managed only by an administrator.
Removes the XML-RPC system.multicall method, which attackers use to try hundreds of passwords in a single request, while XML-RPC keeps working for apps and Jetpack.
Emails the user and the site administrator whenever a new application password is created for an account, since these passwords give API access that bypasses the normal login.
Adds a second step for administrators and editors: after the correct password, WordPress emails a 6-digit code that must be entered to finish logging in.
Makes users in chosen roles reset their password once it is older than 90 days; at login they are told it has expired and pointed to the password reset form.
Makes the cookie that remembers a protected post's password last only until the browser is closed, instead of the default 10 days, which matters on shared and public computers.