GeneratePress fix
GeneratePress Element Not Showing? Check the Rule, Then the Hook
You built the Element, published it and reloaded the page. Nothing. GP Premium decides where every Element appears from three things: its display rules, the hook it is attached to and its priority on that hook. One of the three is almost always wrong, and each can be checked in a couple of minutes.
- PassElements moduleActive
- PassElement statusPublished
- FailLocation ruleNone set
- WarnUsers conditionLogged out only
- WarnHook on this templateNot fired
- PassPriority on the hook10
What you are seeing
- A Hook or Block Element is published and appears nowhere on the site
- The Element shows for you while logged in and vanishes for visitors
- A Header Element's page hero appears on some pages and not their siblings
- A Layout Element's sidebar or footer setting is ignored on certain pages
- The content shows, but above or below the spot you meant it for
Why it happens on GeneratePress
Most common first.
- 1
A display rule that never matches the page
Every Element needs a Location under Display Rules, and an Element with no Location displays nowhere. The reverse fault is as common: an Exclude rule that swallows the page you care about, or a Location set to Posts when the page belongs to a custom post type. Rules match on what the page is, not on where it sits in the menu.
- 2
The Users condition hiding it from the person testing
Display Rules include a Users setting that limits an Element to logged-in visitors, logged-out visitors or particular roles. An Element set to logged-out users is invisible to the administrator checking it, which produces long afternoons. The opposite setting produces a banner the owner sees and no customer ever does.
- 3
A hook that does not run on that template
A Hook Element prints its content only when its hook fires. Sidebar hooks need a sidebar. WooCommerce hooks need a WooCommerce page. A page set to a builder's canvas template, or a template another plugin has replaced, can skip GeneratePress's header and footer hooks entirely, and everything attached to them goes too.
- 4
Two Elements competing for one spot
Priority decides the order of everything on a hook, lower numbers first, and the theme's own parts sit on those hooks as well. Two Header Elements or two Layout Elements whose rules cover the same page cannot both win. The result looks like an Element being ignored when it has in fact been outvoted.
- 5
The module, the status or a cached page
Elements run only while the Elements module is active under Appearance, GeneratePress, and only once they are published. A draft or a scheduled Element does nothing. After that, a page cache can keep serving the copy of the page it stored before the Element existed.
How to fix it, in order
Least invasive first. Stop at the step that fixes it.
- 1
Confirm the Element is live and the module is on
Go to Appearance, Elements and check that the Element's status is Published. Then open Appearance, GeneratePress and confirm the Elements module is activated. Neither check changes anything on the site, which makes them the right place to start.
- 2
Read the display rules the way the site reads them
Open the Element and look at its Display Rules: Location, Exclude and Users. As a test, add a second Location that names the exact page you are checking. If the Element appears, the original rule was the fault and you can narrow it from there.
- 3
View the page logged out
Open the page in a private browser window, then again while logged in. A difference between the two points at the Users rule or at a page cache. Recent versions of GP Premium also add an Elements item to the admin bar on the front end, listing the Elements active on the page in view.
- 4
Move the Element to a hook you know fires
Edit a Hook Element and switch its hook to one that runs on every template, such as generate_before_footer or wp_footer. If the content appears there, it was fine all along and the original hook does not run on that page. Check which template the page uses and whether a builder has replaced the theme's header or footer.
- 5
Settle the priority and any overlap
Give the Element a priority well away from the default of 10 and see whether it moves. Then filter the Elements list by type and look for a second Header or Layout Element whose rules also cover the page. Narrow one of them with an Exclude rule so that only one applies.
- 6
Purge the caches last, in order
Clear the caching plugin, then the host's cache, then any CDN. If the Element holds GenerateBlocks blocks and shows up unstyled, regenerate the CSS files under GenerateBlocks, Settings as well.
Keep it from coming back
- Name each Element for what it does and where, so the list reads like an inventory
- Record the reason for a rule in the Element's Internal Notes tab while you still remember it
- Prefer narrow Locations over Entire Site with a growing list of exclusions
- Recheck your Elements after adding a post type, a builder template or a membership plugin
The permanent fix
A faster Next.js build, with a CMS made for your business
One invisible Element is a ten-minute fix. Dozens of Elements with overlapping rules, some of them running PHP, amount to a second layout system that nobody designed and nobody can read. On a Next.js build the header, the banner and the footer are components in the code, placed once and tracked in version history, and the custom CMS exposes only the parts your team actually edits.
| On GeneratePress today | On Next.js with a custom CMS | |
|---|---|---|
| What you keep updated | WordPress, the theme, its builder and every bundled plugin, all in step | Nothing on a schedule. There is no theme or plugin stack to fall out of step |
| How a page is served | Built from the database on each visit, through the theme and its builder | Built ahead of time and served as finished files from servers near the visitor |
| How you edit it | A general-purpose builder with every option the theme ships | A CMS built around what your business actually changes: services, prices, photos, posts |
| What can break it | An update to any one of those parts, or a license that lapses | A change someone makes on purpose, tested before it goes live |
Your content, your addresses and your rankings come with you: every page is moved, every old address is redirected, and you get a login to an editor that only shows what you need. A repair is still the right call for many sites, and we will say so when it is.
Want this fixed on your GeneratePress site?
Tell us what you are seeing. We look at the site, tell you plainly what is wrong and what it takes, and quote a fixed price before any work starts.
Which of these sounds like you? (pick any)
Frequently asked
Two things separate you from a visitor: the Users condition in the Element's Display Rules and the page cache. Check the Users setting first. If it allows everyone, purge the cache, because logged-in administrators usually bypass it and see the fresh page while visitors get the stored one.
GP Premium withholds it when WordPress is configured to forbid file editing, a wp-config.php setting named DISALLOW_FILE_EDIT that many hosts and security plugins switch on. That is the safeguard working as intended. Put the PHP in a child theme or a small plugin and keep the Hook Element for markup.
Their rules can both match, but a page gets one page hero and one set of header settings. Do not rely on which one GP Premium happens to prefer. Make the rules exclusive by giving the general Element an Exclude for the pages the specific one covers.
Yes, as long as the page still runs through GeneratePress's templates. A builder's canvas template drops the theme's header and footer, and the hooks inside them drop too. A builder's own header and footer templates replace the theme's, so Elements hooked there have nothing to attach to.
Keep reading
- ServiceDesign & Layout FixesOverlapping text and broken spacing tell a customer you do not sweat details. We fix the glitches so the site looks as competent as the business.
- ServiceFixing WordPress PluginsOne bad plugin can take your whole site down. We fix plugin conflicts, fatal errors, and security holes fast — and build custom plugins when the off-the-shelf ones fall short.