{"id":3692,"date":"2026-04-05T20:57:38","date_gmt":"2026-04-05T20:57:38","guid":{"rendered":"https:\/\/jhonydev.pro\/?p=3692"},"modified":"2026-10-01T20:00:56","modified_gmt":"2026-10-01T20:00:56","slug":"login-customizer-wp-wordpress-login-customization-plugin","status":"publish","type":"post","link":"https:\/\/jhonydev.pro\/es\/login-customizer-wp-wordpress-login-customization-plugin\/","title":{"rendered":"Login Customizer WP \u2013 WordPress Login Customization Plugin"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"3692\" class=\"elementor elementor-3692\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6154b19f e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"6154b19f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3a5e43e2 elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"3a5e43e2\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;slideInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t\n<h2 class=\"wp-block-heading\" data-section-id=\"1kyeis3\" data-start=\"342\" data-end=\"361\">Project Overview<\/h2>\n<p data-start=\"435\" data-end=\"596\">Login Customizer WP is a WordPress plugin designed to fully customize the login page experience, including branding, colors, layout, and user interface elements.<\/p>\n<p data-start=\"598\" data-end=\"824\">The plugin provides a modern admin panel with real-time preview, allowing users to easily modify the login screen without writing code. It was built with scalability, extensibility, and developer-friendly architecture in mind.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d0654fd elementor-invisible elementor-widget elementor-widget-ha-justified-gallery happy-addon ha-justified-gallery\" data-id=\"d0654fd\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;,&quot;row_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:150,&quot;sizes&quot;:[]},&quot;margins&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;last_row&quot;:&quot;justify&quot;,&quot;enable_popup&quot;:&quot;yes&quot;}\" data-widget_type=\"ha-justified-gallery.default\">\n\t\t\t\t\t\n\t\t<div class=\"ha-justified-grid__wrap hajs-justified-grid\">\n\t\t\t\t\t\t\t<a href=\"#\" data-mfp-src=\"https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160251-1024x503.png\" class=\"ha-justified-grid__item ha-js-lightbox __fltr-1\" title=\"\">\n\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1760\" height=\"865\" src=\"https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160251.png\" class=\"elementor-animation-grow\" alt=\"\" srcset=\"https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160251.png 1760w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160251-300x147.png 300w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160251-1024x503.png 1024w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160251-768x377.png 768w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160251-1536x755.png 1536w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160251-18x9.png 18w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160251-800x393.png 800w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160251-400x197.png 400w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160251-1120x550.png 1120w\" sizes=\"(max-width: 1760px) 100vw, 1760px\" \/>\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<a href=\"#\" data-mfp-src=\"https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160548-1024x489.png\" class=\"ha-justified-grid__item ha-js-lightbox __fltr-1\" title=\"\">\n\t\t\t\t\t<img decoding=\"async\" width=\"1890\" height=\"903\" data-src=\"https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160548.png\" class=\"elementor-animation-grow lazyload\" alt=\"\" data-srcset=\"https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160548.png 1890w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160548-300x143.png 300w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160548-1024x489.png 1024w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160548-768x367.png 768w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160548-1536x734.png 1536w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160548-18x9.png 18w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160548-800x382.png 800w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160548-400x191.png 400w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160548-1120x535.png 1120w\" data-sizes=\"(max-width: 1890px) 100vw, 1890px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1890px; --smush-placeholder-aspect-ratio: 1890\/903;\" \/>\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<a href=\"#\" data-mfp-src=\"https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160623-1024x414.png\" class=\"ha-justified-grid__item ha-js-lightbox __fltr-1\" title=\"\">\n\t\t\t\t\t<img decoding=\"async\" width=\"1896\" height=\"767\" data-src=\"https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160623.png\" class=\"elementor-animation-grow lazyload\" alt=\"\" data-srcset=\"https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160623.png 1896w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160623-300x121.png 300w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160623-1024x414.png 1024w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160623-768x311.png 768w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160623-1536x621.png 1536w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160623-18x7.png 18w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160623-800x324.png 800w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160623-400x162.png 400w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160623-1120x453.png 1120w\" data-sizes=\"(max-width: 1896px) 100vw, 1896px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1896px; --smush-placeholder-aspect-ratio: 1896\/767;\" \/>\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<a href=\"#\" data-mfp-src=\"https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160423-1024x475.png\" class=\"ha-justified-grid__item ha-js-lightbox __fltr-1\" title=\"\">\n\t\t\t\t\t<img decoding=\"async\" width=\"1677\" height=\"778\" data-src=\"https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160423.png\" class=\"elementor-animation-grow lazyload\" alt=\"\" data-srcset=\"https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160423.png 1677w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160423-300x139.png 300w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160423-1024x475.png 1024w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160423-768x356.png 768w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160423-1536x713.png 1536w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160423-18x8.png 18w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160423-800x371.png 800w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160423-400x186.png 400w, https:\/\/jhonydev.pro\/wp-content\/uploads\/2026\/04\/Captura-de-pantalla-2026-04-05-160423-1120x520.png 1120w\" data-sizes=\"(max-width: 1677px) 100vw, 1677px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1677px; --smush-placeholder-aspect-ratio: 1677\/778;\" \/>\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-808ac27 elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"808ac27\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;slideInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t\n<h2 class=\"wp-block-heading\" data-section-id=\"1ma7m6t\" data-start=\"831\" data-end=\"846\">Key Features<\/h2>\n<ul data-start=\"848\" data-end=\"1558\">\n<li data-section-id=\"emjguu\" data-start=\"848\" data-end=\"901\">Custom login branding (logo, colors, UI elements)<\/li>\n<li data-section-id=\"1cmqbpt\" data-start=\"902\" data-end=\"960\">Real-time preview with live updates in the admin panel<\/li>\n<li data-section-id=\"litdqk\" data-start=\"961\" data-end=\"1040\">Native WordPress Media Library integration for image selection and cropping<\/li>\n<li data-section-id=\"1v2ju74\" data-start=\"1041\" data-end=\"1096\">Fully customizable color system using CSS variables<\/li>\n<li data-section-id=\"mb2up\" data-start=\"1097\" data-end=\"1172\">Customizable UI elements including inputs, buttons, labels, and notices<\/li>\n<li data-section-id=\"1g321vp\" data-start=\"1173\" data-end=\"1231\">Template override system for theme-level customization<\/li>\n<li data-section-id=\"1gqw9ui\" data-start=\"1232\" data-end=\"1273\">Dynamic shortcodes for flexible usage<\/li>\n<li data-section-id=\"1gpsib7\" data-start=\"1274\" data-end=\"1320\">REST API for reading and updating settings<\/li>\n<li data-section-id=\"1xasv71\" data-start=\"1321\" data-end=\"1383\">Gutenberg block integration for modern WordPress workflows<\/li>\n<li data-section-id=\"hk08c6\" data-start=\"1384\" data-end=\"1437\">Built-in caching system for optimized performance<\/li>\n<li data-section-id=\"mogztj\" data-start=\"1438\" data-end=\"1483\">Internationalization support (i18n ready)<\/li>\n<li data-section-id=\"16l4cwh\" data-start=\"1484\" data-end=\"1522\">Optional structured logging system<\/li>\n<li data-section-id=\"1f28slv\" data-start=\"1523\" data-end=\"1558\">Unit testing setup with PHPUnit<\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-08d7f91 elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"08d7f91\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;slideInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t\n<h2 class=\"wp-block-heading\" data-section-id=\"xrf996\" data-start=\"1565\" data-end=\"1580\">How It Works<\/h2>\n<p data-start=\"1582\" data-end=\"1714\">The plugin extends the default WordPress login system by injecting dynamic styles and configurations based on user-defined settings.<\/p>\n<p data-start=\"1716\" data-end=\"1903\">It uses a combination of WordPress APIs, custom CSS variables, and REST endpoints to allow real-time customization while maintaining performance and compatibility with themes and plugins.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c74b2c8 elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"c74b2c8\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;slideInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t\n<h2 class=\"wp-block-heading\" data-section-id=\"14y7dvr\" data-start=\"1910\" data-end=\"1919\">Impact<\/h2>\n<ul data-start=\"1921\" data-end=\"2154\">\n<li data-section-id=\"1oust82\" data-start=\"1921\" data-end=\"1979\">Simplified login customization for non-technical users<\/li>\n<li data-section-id=\"20vpy1\" data-start=\"1980\" data-end=\"2033\">Reduced need for custom CSS or manual development<\/li>\n<li data-section-id=\"dlxxex\" data-start=\"2034\" data-end=\"2087\">Improved branding consistency for WordPress sites<\/li>\n<li data-section-id=\"digz74\" data-start=\"2088\" data-end=\"2154\">Enhanced developer flexibility through extensible architecture<\/li>\n<\/ul>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-11c0ebd elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"11c0ebd\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;slideInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t\n<h2 class=\"wp-block-heading\" data-section-id=\"19qwgqq\" data-start=\"2161\" data-end=\"2181\">Technologies Used<\/h2>\n<p data-start=\"2183\" data-end=\"2259\">PHP<br data-start=\"2186\" data-end=\"2189\" \/>WordPress<br data-start=\"2198\" data-end=\"2201\" \/>REST API<br data-start=\"2209\" data-end=\"2212\" \/>JavaScript<br data-start=\"2222\" data-end=\"2225\" \/>Gutenberg Blocks<br data-start=\"2241\" data-end=\"2244\" \/>CSS Variables<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7e06e96 elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"7e06e96\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;slideInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t\n<h2 class=\"wp-block-heading\" data-section-id=\"1xo1x8l\" data-start=\"2266\" data-end=\"2276\">My Role<\/h2>\n<p data-start=\"2278\" data-end=\"2524\">I designed and developed the plugin from scratch, focusing on clean architecture, modular code structure, and extensibility. I implemented the admin UI, REST API, caching system, and Gutenberg integration to ensure both usability and performance.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-20b9458 elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"20b9458\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;slideInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t\n<h2 class=\"wp-block-heading\" data-section-id=\"11fblvw\" data-start=\"1512\" data-end=\"1526\">Open Source<\/h2>\n<p data-start=\"1528\" data-end=\"1580\">This project is open source and available on GitHub.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ec1e829 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-child\" data-id=\"ec1e829\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c1e1dd0 elementor-widget elementor-widget-button\" data-id=\"c1e1dd0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/github.com\/CarrilloJhonatan\/login-customizer-wp\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">View Repository<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Login Customizer WP is an open-source WordPress plugin that lets site owners customize the login page, including branding, colors, layout and interface elements, with a real-time preview and no code.<\/p>","protected":false},"author":1,"featured_media":3693,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[33],"tags":[71,76,77,74,75],"class_list":["post-3692","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-plugins","tag-custom-development","tag-gutenberg-block","tag-rest-api","tag-ui-customization","tag-wordpress-customization"],"acf":{"full_width":false,"header_transparent":false,"header_white":false},"_links":{"self":[{"href":"https:\/\/jhonydev.pro\/es\/wp-json\/wp\/v2\/posts\/3692","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jhonydev.pro\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jhonydev.pro\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jhonydev.pro\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jhonydev.pro\/es\/wp-json\/wp\/v2\/comments?post=3692"}],"version-history":[{"count":1,"href":"https:\/\/jhonydev.pro\/es\/wp-json\/wp\/v2\/posts\/3692\/revisions"}],"predecessor-version":[{"id":4021,"href":"https:\/\/jhonydev.pro\/es\/wp-json\/wp\/v2\/posts\/3692\/revisions\/4021"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jhonydev.pro\/es\/wp-json\/wp\/v2\/media\/3693"}],"wp:attachment":[{"href":"https:\/\/jhonydev.pro\/es\/wp-json\/wp\/v2\/media?parent=3692"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jhonydev.pro\/es\/wp-json\/wp\/v2\/categories?post=3692"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jhonydev.pro\/es\/wp-json\/wp\/v2\/tags?post=3692"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}