| 开发者 | sajib1223 |
|---|---|
| 更新时间 | 2026年10月7日 16:26 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
xmlrpc.php completely, including pingbacks and system.multicall. Guide?author=1 probe, the REST users list, author sitemaps and embed previews stop naming your accounts to visitors; anyone logged in sees everything as before. Nothing is written, so switching it off reopens it all. Guidewp adminkeep emails send --all --to=you@example.com shows every one of them in your own inbox.[adminkeep_contact_form] shortcode. Messages are emailed to you through WordPress's own mailer, so the SMTP feature delivers them and Email Log shows whether each one went out, with the server's error if it did not. Works out of the box, protected by a WordPress nonce that needs no keys (not for sites that cache their pages), or by Cloudflare Turnstile or Google reCAPTCHA v3 with your own free keys. Nothing is stored. The form prints its own small style and script with itself, so nothing extra loads on other pages, and the spam check's script loads only on pages that show the form.wp plugin install adminkeep --activateNot unless you ask it to. Turning Disable Comments on only hides them — a test asserts the comment rows are untouched after a full enable-and-disable cycle. There is a separate cleanup button that does delete, and it deletes spam and trashed comments only unless you tick the box to include approved ones. It shows the exact count, asks you to confirm, and cannot be undone.
Yes, instantly. There is never a migration to run or a repair step to find. The locks work through WordPress filters, so nothing was written to your database to undo — switch one off and your site is exactly as it was. The one exception is Two-Factor Login, which remembers trusted devices in user meta so they keep skipping the code. Switching it off leaves those entries where they are, doing nothing, and makes its recovery link stop working; deleting the plugin with "Delete all Adminkeep data when the plugin is deleted" switched on removes them. The Content features are deliberately different: they write the things you asked them to write. A copy you made, an order you saved, a file you replaced, a redirect recorded when you renamed a page — switching the feature off stops it doing any more, and leaves what it already did alone. Work you did on purpose should not disappear because you unticked a checkbox.
Yes. Bots usually POST straight to wp-comments-post.php without ever loading your page, so hiding the comment form does nothing. Adminkeep refuses those requests with a 403 before WordPress processes them, and refuses comment creation through the REST API as well.
Not exactly, and it would be dishonest to say otherwise. It is enforced in PHP, so anyone with filesystem, database or WP-CLI access can bypass it. It reliably stops accidents and casual changes — a client uploading a plugin zip from who knows where, or overwriting an installed plugin with one. Treat it as a policy guard, not a security boundary.
Because it cannot be switched off from the admin. Once it is in wp-config.php you need file access to undo it, which strands people. Installation Lockdown filters capabilities instead, so you can always turn it off from the settings screen. If you want the harder version, the constant is still there and this plugin does not interfere with it.
Gmail and Google Workspace: yes, with an app password. Microsoft 365 and Outlook.com: no — Microsoft now requires signing in through Microsoft (OAuth) for SMTP, which this feature does not support. A dedicated SMTP plugin is the better choice there.
Encrypted in your site's database, which protects it in database backups. For the strongest setup define ADMINKEEP_SMTP_PASS (and the other ADMINKEEP_SMTP_* constants) in wp-config.php: values set there are not saved to the database, and the settings form does not display them.
They are removed before an email is stored, along with sign-in and account-activation links. The common link formats are covered, not every possible one, so treat it as a safeguard rather than a guarantee. If you would rather not store email content at all, Email Log has a setting to keep only the envelope — sender, recipient, subject and status — and switch content storage off. Two-Factor Login's code emails are always stored that way, whatever the setting.
Switching it off stops logging. What is already logged stays until you delete it, or delete the plugin with "Delete all Adminkeep data when the plugin is deleted" switched on. While it is off nothing new is recorded and the entries are not aged out, so if you want the log emptied, empty it first — from the Email Log screen, or with wp adminkeep email-log purge --all — and then switch the feature off.
They stay, unless you ask otherwise. Deleting the plugin keeps its settings, your Custom CSS and Header & Footer Code, the SMTP and contact form settings, the email log, the Keep URL redirects and the devices Two-Factor Login remembers and its recovery link, so installing it again brings everything back. To remove all of it when the plugin is deleted, switch on "Delete all Adminkeep data when the plugin is deleted" under Settings → Adminkeep → Plugin settings, or run wp adminkeep setting set delete_data=true. Deactivating never deletes anything.
On the front end of your site, on every page. The Head box goes inside <head>, before your theme's own styles and scripts. The Body open box goes just after <body> opens, on themes that support it (current themes do). The Footer box goes at the end of the page, after WordPress's own footer scripts. None of it is added to the admin, the login page, feeds or the REST API.
Each box holds up to 64 KB. A snippet from an analytics or chat service is a few kilobytes; for anything larger, upload the script as a file and load it with <script src="…"></script>. The code is printed exactly as you saved it, so check a snippet on a test page if you are unsure of it. Switching the feature off stops it printing and keeps the code.
The form itself stores nothing: each message is emailed to you and that is all. If Email Log is on, it keeps a copy for its retention period, with whether the email went out, and WordPress's own personal data export and erase tools find those copies by the visitor's email address.
It is hidden only while Cloudflare Turnstile or Google reCAPTCHA v3 is chosen without both of its keys saved. Open Settings → Contact Form and save them, or choose WordPress Nonce, which needs none. Until then, administrators see a note where the form will appear and visitors see nothing. If the screen says the last submission failed, it names the reason, such as a secret key the provider refused.
Not with the default spam protection, WordPress Nonce. A nonce expires within a day, so a page served from a cache for longer carries an expired one, and every message sent from it is refused. On a site with a caching plugin, a host-level cache or a CDN that caches pages, choose Cloudflare Turnstile or Google reCAPTCHA v3 under Settings → Contact Form. With either of those, yes. The form's markup is then the same for every visitor and carries no nonce or session, so a cached page keeps working. The spam check runs afresh on every send, and the message goes out through a REST request that is not cached.
No. The form carries its own small style and script, printed right after it, so there is no extra file to load on pages without the form, which suits page builders. Cloudflare's or Google's script is added only on pages that show the form.
After the password, the code screen shows the account's email address, partly hidden, and sends the code there when you press Email me the code, so you can tell the person who reads that mailbox before it arrives. The code is sent with wp_mail(), the same way WordPress sends password resets, so the SMTP feature delivers it. It always goes out in the Nice Default Emails layout, whether that feature is on or not. If password resets do not arrive either, the site cannot send email. Nobody in the chosen roles is signed in without the code, so a site whose email is down locks those users out until Two-Factor Login is switched off or email is fixed. See the next question for the ways back in. A code works once, for up to ten minutes from when it is sent, and a login attempt ends 30 minutes after the password at the latest; after either, the login starts again from the password form. Five wrong codes lock the code step for that account for 15 minutes, and each lock after that doubles the wait, up to six hours. Typing the password again does not get round it, and a device remembered with "Remember this device" is not affected. Asking for a new code does not give back tries already used.
There are three ways, and none of them needs you to log in first.
wp adminkeep feature disable two_factor.define( 'ADMINKEEP_DISABLE_TWO_FACTOR', true );.The main login screen, wp-login.php, which is where the code screen appears. Other login forms that use WordPress's own sign-in, such as WooCommerce's My Account or a custom form, cannot show the code screen, so they refuse users who owe a code and point them to the main login screen. A plugin that only moves the login screen to a different address works as usual. If a plugin replaces the login screen with its own form, the code screen cannot be reached on that site, so keep the recovery email: its link is then the way to switch Two-Factor Login off. On multisite, super admins are asked whenever administrators are, since they hold more power than any administrator of a site. The REST API, application passwords and XML-RPC are not asked for a code, because the apps and services that use them have no screen to type one into. An application password still works on its own. Disable XML-RPC is a separate feature.
Yes, since 1.5.0. wp adminkeep feature list shows every feature, and wp help adminkeep lists the commands for switching features, changing their settings, cleaning up comments, replacing the Custom CSS or the Header & Footer Code, configuring SMTP and the contact form, and choosing whether the settings screen hides unused features for a user. If Installation Lockdown has locked you out of the admin, wp adminkeep feature disable install_lock is the way back in.
wp adminkeep feature enable two_factor prints where it went. When the link is used, every administrator of the site is emailed the time and the IP address it was used from.wp adminkeep feature disable two_factor and the ADMINKEEP_DISABLE_TWO_FACTOR constant in wp-config.php also switch the code step off without logging in.adminkeep_contact_form_page_cache_detected filter overrides the detection either way.wp adminkeep setting, contact-form and email-log list no longer shows a summary cut off mid-sentence.[adminkeep_contact_form] shortcode, emailed to you through WordPress's own mailer, so SMTP delivers it and Email Log shows whether it went out. Protected by Cloudflare Turnstile or Google reCAPTCHA v3 with your own keys, and hidden until they are set. Nothing is stored. The form carries its own small style and script, and the spam check's script loads only on pages that show the form. Settings under Settings → Contact Form, or wp adminkeep contact-form get|set.wp adminkeep setting set delete_data=true.adminkeep/v1/header-footer-code, so a site reached with an application password can have it updated. Boxes left out of a save are kept. The same permissions and checks apply as on the Header & Footer Code screen.adminkeep/v1/custom-css, so a site reached with an application password can have its CSS updated without logging in to wp-admin. The same permissions and checks apply as on the Custom CSS screen.wp adminkeep code get <head|body|footer> prints one box, and wp adminkeep code set <head|body|footer> [<file>] replaces it from a file or standard input.wp adminkeep css get prints the CSS exactly as stored, with no newline added, so its output can be piped back into css set unchanged.adminkeep_nice_emails_wrap filter.wp adminkeep smtp import wp-mail-smtp [--dry-run] does the same from a shell.wp adminkeep emails list and wp adminkeep emails send <id>...|--all --to=<email> send WordPress's own emails to one address so you can see them in a real inbox.?author=1 probe answer "not found" to visitors, the REST users list is closed to them, authors are left out of the sitemap (WordPress's own and Yoast SEO's) and out of embed previews, and author names in your theme stop linking to author pages. Logged-in users see everything as before; nothing is written.wp adminkeep view is replaced by wp adminkeep setting get [<key>] and wp adminkeep setting set key=value, the same shape as feature set, so plugin-level settings and feature settings read alike. wp adminkeep setting set hide_unused=true does what view hide-unused --user=<user> did, for the whole site.wp adminkeep view get|hide-unused|show-all --user=<user> read and set whether the settings screen hides unused features for that user. (Replaced in 1.8.1 by wp adminkeep setting set hide_unused=true|false, site-wide.)wp adminkeep email-log list|get|count|purge.wp adminkeep email-log import email-log. Emails are stored the way Adminkeep would have stored them (links removed, the retention setting respected), running it again only adds what is new, and the other plugin's log is left as it was.wp adminkeep smtp set already did.wp adminkeep switches features on and off, changes their settings, cleans up comments, replaces the Custom CSS, configures SMTP and sends a test email. Run wp help adminkeep to see every command.