{"id":10924,"date":"2026-05-22T20:29:49","date_gmt":"2026-05-22T12:29:49","guid":{"rendered":"https:\/\/aeosub.com\/frontend-gatekeeper\/"},"modified":"2026-05-22T20:29:49","modified_gmt":"2026-05-22T12:29:49","slug":"frontend-gatekeeper","status":"publish","type":"post","link":"https:\/\/aeosub.com\/zh\/frontend-gatekeeper\/","title":{"rendered":"Frontend Gatekeeper"},"content":{"rendered":"<div class=\"post-img\" style=\"margin-bottom: 25px\"><img decoding=\"async\" src=\"https:\/\/ps.w.org\/frontend-gatekeeper\/assets\/banner-1544x500.png?rev=3543665\" alt=\"Frontend Gatekeeper\" style=\"width: 100%;height: auto;border-radius: 12px\"><\/div>\n<div class=\"plugin-info-card\" style=\"border: 1px solid #e2e8f0;border-radius: 10px;overflow: hidden;margin-bottom: 30px;font-family: -apple-system, system-ui, sans-serif;background: #fff\">\n<table style=\"width: 100%;border-collapse: collapse;font-size: 14px\">\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 15px 20px;text-align: left;width: 35%;color: #4a5568;background: #fcfcfc\"><img decoding=\"async\" src=\"https:\/\/ps.w.org\/frontend-gatekeeper\/assets\/icon-256x256.png?rev=3543665\" style=\"width: 40px;height: 40px;border-radius: 6px;margin-right: 12px;vertical-align: middle\"> Developer<\/th>\n<td style=\"padding: 15px 20px;font-weight: 500\"><a href=\"https:\/\/profiles.wordpress.org\/jdbg\/\" target=\"_blank\" rel=\"noopener\">Jordan Hlebarov<\/a><\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Version<\/th>\n<td style=\"padding: 12px 20px\">v1.0.0<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Active Installs<\/th>\n<td style=\"padding: 12px 20px\">0 +<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Requires \/ Tested<\/th>\n<td style=\"padding: 12px 20px\">5.7 \/ 7.0<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Last Updated<\/th>\n<td style=\"padding: 12px 20px\">2026-05-22 11:36am GMT<\/td>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Official Link<\/th>\n<td style=\"padding: 12px 20px\"><a href=\"https:\/\/wordpress.org\/plugins\/frontend-gatekeeper\/\" target=\"_blank\" style=\"text-decoration: none;color: #4a3bca;font-weight: bold\" rel=\"noopener\">View Details \u2192<\/a><\/td>\n<\/tr>\n<\/table><\/div>\n<div class=\"plugin-short-desc\" style=\"margin: 20px 0;padding: 12px 15px;background: #f9fafb;border-left: 4px solid #4a3bca;border-radius: 6px;font-style: italic;color: #4a5568\">Hide the public WordPress frontend behind a secret URL parameter. Anyone with the link gets in; everyone else sees a 404.<\/div>\n<p>Frontend Gatekeeper hides the public frontend of your WordPress site unless visitors arrive with a configured URL parameter and value. It is useful for staging sites, soft launches, client previews, and pre-release content where you want to share a single shareable link instead of issuing individual user accounts.<\/p>\n<p>Logged-in users always see the site normally, so editors and administrators are never blocked.<\/p>\n<h4>Features<\/h4>\n<ul>\n<li>Hide the entire public frontend with a single toggle.<\/li>\n<li>Configurable parameter name and secret value, set per site.<\/li>\n<li>Custom blocked message shown to unauthorized visitors (served with a 404 status).<\/li>\n<li>Same-site link propagation: WordPress-generated links, menus, and block content automatically carry the access parameter forward, so visitors stay authorized while browsing.<\/li>\n<li>Footer-script fallback that adds the parameter to links and forms rendered outside normal WordPress filters.<\/li>\n<li>Gutenberg and block-theme aware through the <code>render_block<\/code> filter and <code>WP_HTML_Tag_Processor<\/code> when available.<\/li>\n<li>Multisite-aware URL scoping for subdomain and subdirectory networks: access on <code>\/site-a\/<\/code> will not leak the token to <code>\/site-b\/<\/code>.<\/li>\n<li>Logged-in users, wp-admin, REST API, AJAX, cron, and <code>wp-login.php<\/code> are always allowed through.<\/li>\n<\/ul>\n<h4>Typical use cases<\/h4>\n<ul>\n<li>Sharing a staging or pre-launch site with clients and stakeholders.<\/li>\n<li>Gating a soft launch behind a single link instead of provisioning accounts.<\/li>\n<li>Hiding draft or campaign content until you are ready to publish.<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Hide the public WordPress frontend behind a secret URL parameter. Anyone with the link gets in; everyone else sees a 404.<\/p>","protected":false},"author":1,"featured_media":9317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[252],"tags":[1692,1742,1743,1744,1745,555],"class_list":["post-10924","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends","tag-access-control","tag-coming-soon","tag-maintenance-mode","tag-preview","tag-private-site","tag-wordpress-plugin"],"_links":{"self":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/10924","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/comments?post=10924"}],"version-history":[{"count":0,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/10924\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media\/9317"}],"wp:attachment":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media?parent=10924"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/categories?post=10924"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/tags?post=10924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}