Reverse-engineered from your /wp-admin/edit.php?post_type=gp_elements markup. Publish-ready for developers and site operators.
TL;DR
- This is the GeneratePress Premium → Elements list view inside WordPress 6.8.2.
- Core uses concatenated
load-styles.php/load-scripts.phpbundles plus plugin CSS/JS. - The page initializes common WP globals (
ajaxurl,pagenow,typenow, etc.), upgradesno-js➜js, and wires Customizer capability flags. - It lists five active GP Elements (Headers, Hooks/Blocks), including hook mounts like
generate_before_footer,generate_after_logo,generate_menu_bar_items, and more. - Performance: emoji feature-detect via OffscreenCanvas/Worker, DNS prefetch, and history canonicalization; Security: nonces everywhere, heartbeat, auth-check overlay.
Page Identity & Context
- Title:
Elements ‹ SolveForce Communications — WordPress - Route:
/wp-admin/edit.php?post_type=gp_elements - Theme/Stack: GeneratePress theme (3.6.0) + GP Premium (2.5.5) Elements module
- WP version: 6.8.2 (see footer)
Boot Variables & Early JS
addLoadEvent = function (func) {
if (typeof jQuery !== 'undefined') jQuery(() => func());
else if (typeof wpOnload !== 'function') { wpOnload = func; }
else { var old = wpOnload; wpOnload = () => { old(); func(); }; }
};
var ajaxurl = '/wp-admin/admin-ajax.php',
pagenow = 'edit-gp_elements',
typenow = 'gp_elements',
adminpage = 'edit-php',
thousandsSeparator = ',',
decimalPoint = '.',
isRtl = 0;
What it does
- Provides a safe onload shim that works with or without jQuery.
- Exposes classic admin globals used by many core/plugin scripts.
Stylesheets (Core + Plugins)
- Concatenated core CSS:
load-styles.php?c=1&dir=ltr&load[dashicons,admin-bar,common,forms,admin-menu,dashboard,list-tables,edit,...,wp-auth-check,wp-components]&ver=6.8.2 - Print tweak:
@media print { #wpadminbar { display:none; } } - Plugins/theme CSS:
- WP Engine common:
wpe-common.css - GP Premium Elements admin:
elements.css - GeneratePress dashboard:
style-dashboard.css - GP Premium packages/dashboard:
packages.css,style-dashboard.css
- WP Engine common:
Core relies on chunked, cache-busted bundles; plugins add their own, also cache-busted.
Emoji Feature Detection (Performance & Compatibility)
WordPress loads an auto-generated script that:
- Uses OffscreenCanvas + Worker when available to test rendering of complex emoji (flags/ZWJ sequences).
- Caches the result in
sessionStorageto avoid re-testing for a week. - Conditionally loads fallback emoji assets (
wp-emoji-release.min.js) only when necessary.
Benefit: users get native emoji when possible; fallbacks only if needed.
User/Environment Globals (Examples)
var wpe = { account: "solveforce", popup_disabled: "", user_email: "********@******" };
var userSettings = { url: "/", uid: "1", time: "1756000760", secure: "1" };
WP Engine and core pass minimal context to JS. (Email masked here in docs.)
Script Pipeline (Highlights)
- Core bundles:
load-scripts.php?c=1&load=jquery-core,jquery-migrate,jquery-ui-core,utils(early)
plus later admin modules (admin-bar, tags-suggest, inline-edit-post, heartbeat, auth-check, etc.) - WP Engine: cache manager, force-strong-passwords (
zxcvbn) admin hooks. - Admin polish:
no-js→jsclass switch; Customizer support test;history.replaceStateto honor canonical admin URL + hash. - Internationalization & a11y:
wp-i18n,wp-a11yloaded and localized (ltr).
Admin UI: Menus & Toolbar
- Left menu contains standard sections (Dashboard, Posts, Media, Pages, Comments, Appearance, Plugins, Users, Tools, Settings) plus:
- WP Engine quick tools
- Site Kit (Google) top-level
- Appearance → Elements (current)
- Admin bar includes:
- WordPress menu (About, Docs, Support)
- Site menu (“Visit Site”)
- Comments bubble, New item (Post/Media/Page/User)
- WP Engine Quick Links (Clear cache, Status, Support)
- Elements shortcut
- Current user menu (profile, logout with nonce)
GeneratePress Dashboard Header (Elements Module)
- Title with GP logo (
<svg>) - Local navigation: Dashboard | Elements (active) | Font Library | external Support/Docs
Elements List Table (What’s Active)
Filters, search, bulk actions, date filter, and a data table:
| Title | Type | Hook / Location | Visibility | Date (UTC site time) |
|---|---|---|---|---|
| Footer | Block – Hook | generate_before_footer • Entire Site | Published | 2024-11-02 19:28 |
| Phone | Hook | generate_after_logo • Entire Site | Published | 2024-11-01 04:34 |
| Search | Block – Hook | generate_menu_bar_items • Entire Site | Published | 2024-11-02 08:20 |
| SolveForce | Header | Entire Site | Published | 2024-11-01 03:29 |
| SolveForce Navigation | Block – Hook | generate_after_main_content • Not set | Published | 2024-11-02 19:54 |
Why this matters
- Hooks show exactly where UI injects into the theme:
generate_before_footer→ before footer regiongenerate_after_logo→ near site brandinggenerate_menu_bar_items→ add items inside the GP menu bargenerate_after_main_content→ after content area
- Header (Elements type) replaces/augments site header globally.
Quick Edit, Bulk Edit & Screen Options
- Hidden inline-edit rows include fields for Title, Date, Password/Private, Parent, Order, Status.
- Screen Options let you toggle columns (Type, Location, Exclusions, Users, Date), set “items per page,” and switch view mode (Compact/Extended).
REST, Heartbeat & Auth
- REST bootstrap:
var wpApiSettings = { root: "https://solveforce.com/wp-json/", nonce: "…", versionString: "wp/v2/" };Enableswp.apiRequest/wp.apifor admin UI or custom tools. - Heartbeat API: keeps the session alive; supports lock/presence features in editors.
- Auth check overlay: prompts login in an iframe (
interim-login=1) when a session expires.
Performance/UX Touches
- DNS prefetch:
//www.googletagmanager.com - History canonicalization: keeps the browser URL synced with canonical admin link.
- SVG Icon Painter: colorizes dashicons to match the current admin color scheme (
_wpColorScheme). - Print hygiene: removes admin bar in print views.
Security Posture (At a Glance)
- Nonces in forms and action links (e.g., trash, logout).
- User scoping:
uid, role-gated menus, andprofile.phplinking. - Strong passwords: enforced in admin via WP Engine’s
force-zxcvbnadd-on. - Auth overlay avoids losing work during long sessions.
How to Work With These Elements (Actionable)
- Add or modify an Element
Appearance → Elements → Add New Element ➜ choose Header, Hook, Block, or Layout. - Target a hook precisely
For hooks used here:- Before footer:
generate_before_footer - After logo:
generate_after_logo - Menu bar items:
generate_menu_bar_items - After main content:
generate_after_main_content
- Before footer:
- Scope & exclude
Use the Location and Exclusions rules inside each Element to constrain where it renders (entire site vs. specific templates, archives, roles, etc.). - Version & cache sanity
- Because assets are cache-busted, you can safely deploy frequent tweaks.
- Use WP Engine → quick clear cache in admin bar after changing headers/hooks.
Useful Snippets (Reference)
Canonical URL maintenance
<link id="wp-admin-canonical" rel="canonical"
href="https://solveforce.com/wp-admin/edit.php?post_type=gp_elements" />
<script>
if (window.history.replaceState) {
history.replaceState(null, null,
document.getElementById('wp-admin-canonical').href + window.location.hash);
}
</script>
no-js → js upgrade & Customizer support flag
<script>
document.body.className = document.body.className.replace('no-js', 'js');
(function() {
var b = document.body, cs = 'customize-support',
rcs = new RegExp('(^|\\s+)(no-)?' + cs + '(\\s+|$)');
b.className = b.className.replace(rcs, ' ');
b.className += (window.postMessage ? ' ' : ' no-') + cs;
}());
</script>
Heartbeat bootstrap
var heartbeatSettings = { nonce: "cf34ae7669" }; // rotates per page load
Takeaways for Your Team
- The Elements screen is a clean, list-table view underpinned by standard WP admin patterns (filters, bulk, screen options).
- GeneratePress hooks (documented by GP) are the core “attach points” for header/menu/footer customization—your five active Elements show a well-structured layout strategy.
- Core/Plugin assets are chunked and cache-busted; emoji detection and DNS prefetch are subtle perf wins; heartbeat + auth-check protect long sessions.
Questions or tweaks you want to implement next (e.g., moving “Phone” from generate_after_logo to a different area, or adding conditional display rules for specific templates)? I can lay out exact Element settings or hook code for those.