{"id":318037,"date":"2026-06-01T11:26:20","date_gmt":"2026-06-01T11:26:20","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/login-page-customizer-by-am-sites\/"},"modified":"2026-06-01T15:05:43","modified_gmt":"2026-06-01T15:05:43","slug":"amsites-login-customizer","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/amsites-login-customizer\/","author":23502406,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.9.6","stable_tag":"1.9.6","tested":"7.0","requires":"5.6","requires_php":"7.0","requires_plugins":null,"header_name":"AMSites Login Customizer","header_author":"AM-Sites Web Experts","header_description":"A powerful, lightweight visual customizer for the WordPress login page. Includes 30+ templates, gradient\/image\/video backgrounds, complete form customization, math captcha security, login attempts limiter, custom presets, dark admin mode, and a step-by-step setup wizard.","assets_banners_color":"1b409e","last_updated":"2026-06-01 15:05:43","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/plugins.amsiteswebexperts.com","header_author_uri":"https:\/\/plugins.amsiteswebexperts.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":31,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.9.6":{"tag":"1.9.6","author":"amsiteswebexperts","date":"2026-06-01 15:05:43"}},"upgrade_notice":{"1.9.6":"<p>Recommended: fixes a WordPress.org scanner warning on the captcha input sanitization and updates &quot;Tested up to&quot; to WordPress 7.0.<\/p>","1.9.0":"<p>Security and compliance hardening across output escaping, input sanitization and script enqueueing. Recommended for all users.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3556663,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3556663,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3556663,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.9.6"],"block_files":[],"assets_screenshots":{"Screenshot-1.png":{"filename":"Screenshot-1.png","revision":3556663,"resolution":"1","location":"assets","locale":"","width":1419,"height":688},"Screenshot-2.png":{"filename":"Screenshot-2.png","revision":3556663,"resolution":"2","location":"assets","locale":"","width":1419,"height":696},"Screenshot-3.png":{"filename":"Screenshot-3.png","revision":3556663,"resolution":"3","location":"assets","locale":"","width":1418,"height":687},"Screenshot-4.png":{"filename":"Screenshot-4.png","revision":3556663,"resolution":"4","location":"assets","locale":"","width":379,"height":666},"Screenshot-5.png":{"filename":"Screenshot-5.png","revision":3556663,"resolution":"5","location":"assets","locale":"","width":371,"height":666},"Screenshot-6.png":{"filename":"Screenshot-6.png","revision":3556663,"resolution":"6","location":"assets","locale":"","width":380,"height":673},"Screenshot-7.png":{"filename":"Screenshot-7.png","revision":3556663,"resolution":"7","location":"assets","locale":"","width":375,"height":669},"Screenshot-8.png":{"filename":"Screenshot-8.png","revision":3556663,"resolution":"8","location":"assets","locale":"","width":1441,"height":736}},"screenshots":{"1":"Main dashboard with template gallery and quick actions.","2":"Background settings: gradients, images and video presets.","3":"Login form styling: colors, typography, spacing and borders.","4":"Logo settings with click URL and live preview.","5":"Security tab: math captcha difficulty and attempts limiter.","6":"Presets tab: save, load and manage your custom presets.","7":"Step-by-step setup wizard for first-time configuration.","8":"Dark admin mode for the AMSites Login dashboard."}},"plugin_section":[],"plugin_tags":[2604,362,2768,602,600],"plugin_category":[38,43,54],"plugin_contributors":[265324],"plugin_business_model":[],"class_list":["post-318037","plugin","type-plugin","status-publish","hentry","plugin_tags-branding","plugin_tags-captcha","plugin_tags-customizer","plugin_tags-login","plugin_tags-security","plugin_category-authentication","plugin_category-customization","plugin_category-security-and-spam-protection","plugin_contributors-amsiteswebexperts","plugin_committers-amsiteswebexperts"],"banners":{"banner":"https:\/\/ps.w.org\/amsites-login-customizer\/assets\/banner-772x250.png?rev=3556663","banner_2x":"https:\/\/ps.w.org\/amsites-login-customizer\/assets\/banner-1544x500.png?rev=3556663","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/amsites-login-customizer\/assets\/icon-256x256.png?rev=3556663","icon_2x":"https:\/\/ps.w.org\/amsites-login-customizer\/assets\/icon-256x256.png?rev=3556663","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/amsites-login-customizer\/assets\/Screenshot-1.png?rev=3556663","caption":"Main dashboard with template gallery and quick actions."},{"src":"https:\/\/ps.w.org\/amsites-login-customizer\/assets\/Screenshot-2.png?rev=3556663","caption":"Background settings: gradients, images and video presets."},{"src":"https:\/\/ps.w.org\/amsites-login-customizer\/assets\/Screenshot-3.png?rev=3556663","caption":"Login form styling: colors, typography, spacing and borders."},{"src":"https:\/\/ps.w.org\/amsites-login-customizer\/assets\/Screenshot-4.png?rev=3556663","caption":"Logo settings with click URL and live preview."},{"src":"https:\/\/ps.w.org\/amsites-login-customizer\/assets\/Screenshot-5.png?rev=3556663","caption":"Security tab: math captcha difficulty and attempts limiter."},{"src":"https:\/\/ps.w.org\/amsites-login-customizer\/assets\/Screenshot-6.png?rev=3556663","caption":"Presets tab: save, load and manage your custom presets."},{"src":"https:\/\/ps.w.org\/amsites-login-customizer\/assets\/Screenshot-7.png?rev=3556663","caption":"Step-by-step setup wizard for first-time configuration."},{"src":"https:\/\/ps.w.org\/amsites-login-customizer\/assets\/Screenshot-8.png?rev=3556663","caption":"Dark admin mode for the AMSites Login dashboard."}],"raw_content":"<!--section=description-->\n<p>AMSites Login Customizer is a lightweight, visual customizer for the WordPress login page by AM-Sites Web Experts. Pick from 30+ templates, customize gradients, image and video backgrounds, completely restyle the form, harden the login with a math captcha and an attempts limiter, save your own presets, and onboard with a step-by-step setup wizard.<\/p>\n\n<p>All assets shipped with the plugin (logo and background presets) are bundled locally; no remote files are required for the plugin to work.<\/p>\n\n<p><strong>Key features<\/strong><\/p>\n\n<ul>\n<li>30+ ready-made login page templates (classic, animated, glass, neon, etc.).<\/li>\n<li>Gradient, image and video backgrounds with 20 image presets and 15 video presets.<\/li>\n<li>Full login form restyling: colors, typography, spacing, borders, shadows.<\/li>\n<li>Custom logo with click URL.<\/li>\n<li>Math Captcha with Simple \/ Medium \/ Hard difficulty.<\/li>\n<li>Login Attempts Limiter with IP and username blocking.<\/li>\n<li>Save and load your own presets.<\/li>\n<li>Dark admin mode and step-by-step setup wizard.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>amsites-login-customizer<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the <strong>Plugins &gt; Add New<\/strong> screen in WordPress.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Go to <strong>AMSites Login<\/strong> in the admin sidebar to open the customizer.<\/li>\n<li>Pick a template, adjust colors, backgrounds and form options, then click <strong>Save Changes<\/strong>.<\/li>\n<li>Visit <code>wp-login.php<\/code> (or your custom login slug) to preview the result.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20replace%20wp-login.php%3F\"><h3>Does this plugin replace wp-login.php?<\/h3><\/dt>\n<dd><p>No. It only restyles the existing WordPress login page and adds optional security features (captcha, attempts limiter). The standard WordPress login flow is preserved.<\/p><\/dd>\n<dt id=\"will%20it%20work%20with%20my%20theme%20and%20other%20plugins%3F\"><h3>Will it work with my theme and other plugins?<\/h3><\/dt>\n<dd><p>Yes. The customizer only affects the <code>wp-login.php<\/code> page output, so your active theme is not modified and there is no conflict with front-end styles.<\/p><\/dd>\n<dt id=\"are%20the%20image%20and%20video%20backgrounds%20loaded%20from%20a%20remote%20server%3F\"><h3>Are the image and video backgrounds loaded from a remote server?<\/h3><\/dt>\n<dd><p>No. All preset assets (logos and backgrounds) are bundled locally with the plugin. No remote requests are made for the plugin to work.<\/p><\/dd>\n<dt id=\"how%20does%20the%20math%20captcha%20work%3F\"><h3>How does the math captcha work?<\/h3><\/dt>\n<dd><p>A short math question (e.g. <code>3 + 4 = ?<\/code>) is added to the login form. The answer is validated server-side together with a signed token. You can choose Simple, Medium or Hard difficulty.<\/p><\/dd>\n<dt id=\"how%20can%20i%20reset%20the%20plugin%20to%20its%20default%20settings%3F\"><h3>How can I reset the plugin to its default settings?<\/h3><\/dt>\n<dd><p>Open the AMSites Login admin page and use the <strong>Reset<\/strong> button, or simply pick one of the built-in templates and save it again.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.9.6<\/h4>\n\n<ul>\n<li>Fixed: inlined <code>sanitize_text_field( wp_unslash( ... ) )<\/code> for <code>$_POST['amslc_captcha']<\/code> to satisfy WordPress.Security.ValidatedSanitizedInput.InputNotSanitized.<\/li>\n<li>Updated: readme \"Tested up to\" bumped to WordPress 7.0 and full WordPress.org readme compliance (Installation, FAQ, Screenshots, Upgrade Notice).<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>Hardened: every echoed variable is now escaped at output (esc_attr\/esc_html\/esc_url\/wp_kses_post) as required by WordPress.org.<\/li>\n<li>Hardened: all $_POST \/ $_SERVER reads are unslashed and sanitized; AJAX payloads are nonce-verified via guard() and JSON values are walked through map_deep + per-field sanitizers in AMSLC_Settings::update().<\/li>\n<li>Replaced the direct <code>require_once ABSPATH . 'wp-login.php'<\/code> include in the custom-slug handler with a safe <code>wp_safe_redirect( wp_login_url() )<\/code>; the wp-login.php \"hide\" branch now only runs for anonymous GET requests.<\/li>\n<li>Replaced direct <code>&lt;script&gt;<\/code> echoes in <code>rc_site_inline()<\/code> with <code>wp_register_script()<\/code> + <code>wp_add_inline_script()<\/code> on properly enqueued handles (both front-end and admin).<\/li>\n<li><code>parse_url()<\/code> replaced with <code>wp_parse_url()<\/code>.<\/li>\n<li>Added <code>\/* translators: *\/<\/code> comment to the \"Blocked: try again in %d minute(s)\" string.<\/li>\n<li>Prefixed the remaining loop variables in admin\/view.php (<code>$amslc_sans<\/code>, <code>$amslc_serif<\/code>, <code>$amslc_disp<\/code>, <code>$amslc_rows<\/code>, <code>$amslc_r<\/code>, <code>$amslc_f<\/code>).<\/li>\n<li>Updated Author URI to the public WordPress.org author profile and rewrote the readme short description to fit the 150-character limit.<\/li>\n<\/ul>\n\n<h4>1.8.3<\/h4>\n\n<ul>\n<li>Updated \"Tested up to\" header.<\/li>\n<\/ul>\n\n<h4>1.8.2<\/h4>\n\n<ul>\n<li>Fixed admin CSS\/JS not loading and all AJAX actions after the v1.8.0 prefix rename (menu hook + wp_ajax_* hooks).<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Renamed plugin to \"AMSites Login Customizer\" with the new slug \"amsites-login-customizer\".<\/li>\n<li>Prefixed all PHP declarations, options, AJAX actions and constants with the unique \"amslc_\" \/ \"AMSLC_\" prefix to avoid collisions.<\/li>\n<li>Bundled all background preset images locally; removed all remote (Unsplash\/Pixabay) calls.<\/li>\n<li>Removed unnecessary load_plugin_textdomain() call (WordPress.org loads translations automatically since WP 4.6).<\/li>\n<\/ul>\n\n<h4>1.7.3<\/h4>\n\n<ul>\n<li>Fixed readme \"Tested up to\" header for WordPress 6.8 compatibility.<\/li>\n<li>Synced Stable Tag with plugin Version.<\/li>\n<li>Additional hardening: stricter ABSPATH guards, capability checks, and nonce verification audited across all admin\/AJAX entry points.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>20 image presets + 15 video presets, accept any browser-supported video format.<\/li>\n<li>8 new animated\/effect templates (Aurora, Glow Pulse, Floating, Matrix, etc).<\/li>\n<li>Logo Click URL setting.<\/li>\n<li>Complete login form customization in dedicated tabs.<\/li>\n<li>Math Captcha with Simple\/Medium\/Hard difficulty.<\/li>\n<li>Login Attempts Limiter with IP\/username block.<\/li>\n<li>Save\/load custom presets.<\/li>\n<li>Dark admin mode.<\/li>\n<li>Step-by-step setup wizard.<\/li>\n<\/ul>","raw_excerpt":"Visual login customizer: 30+ templates, gradient\/image\/video backgrounds, form styling, math captcha and a login attempts limiter.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/318037","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=318037"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/amsiteswebexperts"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=318037"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=318037"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=318037"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=318037"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=318037"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=318037"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}