GeneratePress 2.0 Alpha/Beta

GeneratePress 2.0 has been released! You can grab the update in your Dashboard.

GeneratePress 2.0 is near! We’re ready for testers to put it through the wringer and find any issues we might have missed.


We know you’re busy, so we have a deal for you. If you find a 2.0 related bug before anyone else, we’ll extend your GP Premium license by 1 year.

How to test

Since GeneratePress is hosted on, we don’t have a cool way to serve beta versions like our premium plugin. That being said, the process is very simple!

Install Easy Theme and Plugin Upgrades

This plugin will prevent you from getting a “folder already exists” error when trying to upload the theme to a site which has it already. This is only if you’ll be trying out the beta version on a site where GeneratePress is already installed.

  1. Go to Plugins > Add New
  2. Search for Easy Theme and Plugin Upgrades
  3. Install, activate and forget

Download the latest file

  1. Download the latest beta version here
  2. Go to Themes > Add New > Upload
  3. Install, activate and test

What’s new?

GeneratePress 2.0 focuses largely on performance and usability. Here’s some of the major changes.

No more jQuery

All of the theme javascript has been re-written from scratch. When you install the free theme now, jQuery is no longer loaded! This reduces your page size quite considerably.

This is the main testing point – things like your dropdown menu, click dropdown menu, navigation search etc.. They should all work the same as before, just with no big jQuery library.

Full accessibility

2.0 has been reviewed by the accessibility team, and passed all of their tests. We can now say the theme is 100% accessible!

New default font

Starting in 2.0, Open Sans has been removed as the default font. We’ve switched to a simple System Stack, which again reduces your page size considerably. Of course, this won’t overwrite the font you’ve chosen, this will only apply to fresh sites with no saved options.

Font Awesome essentials

Instead of loading the entire Font Awesome library, only the essentials will load by default. If you’re updating GP on an existing site, we’ll set it to the full library automatically for you, as we don’t want to break any icons you have in your content.

Dynamic CSS caching

Many of your Customizer options write CSS for you, and output it to your pages. Instead of generating this dynamic CSS on every page load, we cache it in the database and serve the cached CSS instead. As you can imagine, this is a big performance boost.

On first load, the CSS will be cached and added to the database. Any time you save the Customizer options, the cache will bust and get updated with your new CSS.

PHP performance

We’ve profiled our PHP and removed small performance bottlenecks. These are micro-optimizations, but will increase the speed of your website.

The Layout metabox

Instead of having a bunch of separate metaboxes polluting your screen as you add pages and posts, we’ve merged all of our metaboxes into one master Layout metabox.

Retina logos

We added a new option in Customize > Site Identity to upload a retina logo. This method uses srcset to show your retina logo on screens that support it.

File structure completely re-organized

We went through every single function, and re-organized how the theme code is structured. This makes the theme much easier to navigate for developers looking for specific functions etc..

WordPress coding standards

We cleaned our code up considerably, following WordPress coding standards very strictly.

Child theme changes

In 2.0, the generate_sidebars hook has been removed. It was causing a PHP bottleneck and hurting performance.

If you’re using a child theme with custom page templates, you will need to replace this hook with the new generate_after_primary_content_area hook, and add the sidebars function. You can see these new elements by viewing the page.php file in 2.0.

Of course, we kept backward compatibility so your sidebars won’t disappear when you update.

Things to look for

Here’s a couple things to look for when testing the beta:

  1. Any obvious errors or issues?
  2. Mobile menu still works as it did before.
  3. Sub-menu dropdown methods (hover, click, arrow click) all work as they did before.
  4. Navigation search and back to top button work as they did before.
  5. Font Awesome Essentials are turned off on existing websites.
  6. Font Awesome Essentials are set on fresh installs.
  7. Dynamic CSS caching is turned off on existing websites.
  8. Dynamic CSS caching is set on fresh installs.
  9. Retina logo works on retina screens – existing logos aren’t affected.
  10. New master Layout metabox works flawlessly.

Deprecated functions

We’ve deprecated some functions we no longer need.

  • generate_get_min_suffix()
  • generate_add_layout_meta_box()
  • generate_show_layout_meta_box()
  • generate_save_layout_meta()
  • generate_add_footer_widget_meta_box()
  • generate_show_footer_widget_meta_box()
  • generate_save_footer_widget_meta()
  • generate_add_page_builder_meta_box()
  • generate_show_page_builder_meta_box()
  • generate_save_page_builder_meta()
  • generate_add_de_meta_box()
  • generate_show_de_meta_box()
  • generate_save_de_meta()
  • generate_add_base_inline_css()
  • generate_color_scripts()
  • generate_typography_scripts()
  • generate_spacing_scripts()

Removed filters

Some filters have been removed, as they have core filters you can use instead.

  • generate_leave_reply
  • generate_cancel_reply

Full changelog

Known issues

None currently.

rc.1 – 12/4/2017

  • Tweak: Set comment website field as URL input type
  • Tweak: Set comment email field as email input type
  • Tweak: Use WP defaults for comment must_log_in and logged_in_as messages
  • Tweak: Fix admin notice position in GP Dashboard
  • Tweak: Let WP figure out featured image alt attribute

beta.3 – 12/2/2017

  • DRY footer widget code
  • Clean up WordPress Coding Standards issues
  • Set comment website field as URL input type
  • Set comment email field as email input type
  • Tweak: Use WP defaults for comment must_log_in and logged_in_as messages
  • Remove generate_leave_reply filter
  • Remove generate_cancel_reply filter

beta.2 – 11/30/2017

  • Tweak: Make Layout metabox sidebar compatible
  • Fix: Navigation search on RTL sites
  • Fix: Fix Top Bar colors and typography options not appearing

beta.1 – 11/29/2017

  • Fix: Sidebar sub-menu positioning when set to hover
  • Fix: Horizontal scroll caused by navigation search on RTL sites
  • Fix: “0” option in Footer Widget metabox section won’t save
  • Fix: Navigation search icon stays highlighted when closed in some cases
  • Fix: Navigation search doesn’t come into focus sometimes

alpha.1 – 11/27/2017

  • New: Full web accessibility
  • New: All jQuery replaced with vanilla javascript
  • New: System stack font set to default
  • New: H6 typography options
  • New: Option to turn on Font Awesome essentials
  • New: Font Awesome set to essentials by default
  • New: Retina logo option
  • New: Cache dynamic CSS
  • New: Option to enable/disable dynamic CSS caching
  • New: Merge all separate metaboxes into one master metabox
  • New: generate_dashboard_page_capability filter
  • New: generate_dashboard_inside_container hook
  • New: generate_dashboard_after_header hook
  • New: generate_after_primary_content_area hook
  • New: generate_show_post_navigation filter
  • Tweak: PHP performance profiled and improved
  • Tweak: generate_sidebars hook removed ** Update your child themes *
  • Tweak: Style select inputs the same as other inputs
  • Tweak: Archive titles same font size as other h1 elements
  • Tweak: Add accessibility to read more links
  • Tweak: Add alt tag to featured images
  • Tweak: Remove title tag from featured images
  • Tweak: Make mobile menu keyboard accessible
  • Tweak: Make dropdown menu types keyboard accessible
  • Tweak: Make dropdown toggle arrow larger on mobile
  • Tweak: Load style.min.css instead of style.css
  • Tweak: Clean up minified Font Awesome file
  • Tweak: Comments title screen reader text set to h2
  • Tweak: Remove margin from last author info paragraph
  • Tweak: Adjust mobile menu icon position
  • Tweak: Load admin-specific files in the admin only
  • Tweak: Move skip to content link into hook and remove from header.php
  • Tweak: Add screen reader labels to comment form fields
  • Tweak: Change widget titles to h2 elements
  • Tweak: Remove existing separate meta boxes
  • Tweak: File structure completely re-organized
  • Tweak: Code re-written to adhere to WordPress coding standards
  • Fix: Button text color in content when content link is set
  • Fix: Left aligned footer bar alignment
  • Fix: Spacing when sticky nav is activated
  • Fix: Header alignment in RTL languages
  • Fix: Tablet/desktop grid bug
  • Fix: Header inner width live preview bug
  • Deprecated: generate_get_min_suffix()
  • Deprecated: generate_add_layout_meta_box()
  • Deprecated: generate_show_layout_meta_box()
  • Deprecated: generate_save_layout_meta()
  • Deprecated: generate_add_footer_widget_meta_box()
  • Deprecated: generate_show_footer_widget_meta_box()
  • Deprecated: generate_save_footer_widget_meta()
  • Deprecated: generate_add_page_builder_meta_box()
  • Deprecated: generate_show_page_builder_meta_box()
  • Deprecated: generate_save_page_builder_meta()
  • Deprecated: generate_add_de_meta_box()
  • Deprecated: generate_show_de_meta_box()
  • Deprecated: generate_save_de_meta()
  • Deprecated: generate_add_base_inline_css()
  • Deprecated: generate_color_scripts()
  • Deprecated: generate_typography_scripts()
  • Deprecated: generate_spacing_scripts()

82 thoughts on “GeneratePress 2.0 Alpha/Beta”

  1. Just loaded this up at a staging install and on a cursory frontend inspection, everything seems to be working fine:

    I’m curious to know how changes like the Dynamic CSS caching might impact the use of autoptimize or other minification plugins.

    The mobile menus are working fine across all media queries, including the custom CSS I had in place previously.

    question: which admin panel, exactly, is the “New master Layout metabox?” Is that via Appearance> Customize>Layout>Container?

    • There shouldn’t be any impact if you’re using Autoptimize, as I believe it handles the caching. It’s always a good idea to flush any kind of caching after updates though.

      When you’re adding a page or post, you’ll see the “Layout” metabox, which has all of our previous metaboxes in one area.

      Thanks for testing! Really appreciate it 🙂

  2. Hi Tom, that’s great news. Congratulations on the development!

    “If you’re the first one to find a bug related to 2.0, we’ll extend your GP Premium license”.
    Well, within this sentence is the bug: “Starting in 2.0, Opens Sans has been removed”.


    I would like to ask, the Statement child theme, is it good practice to use and relevant compared to a “blank” child theme? I looked thru it’s functions.php and saw all the $statement_x_defaults. Speaking of removal of Open Sans, it has “font_body = Open Sans”. Are these variables still used and should other or better defaults be set? Is it possible/legal for others to release their own GeneratePress child theme with their own customized defaults?


    • Ha, nice catch!

      It’s definitely not bad practice to use – those functions simply set the default fonts if no options are saved.

      You can absolutely release your own child themes 🙂

      Let me know if you need more info!

  3. I love how the road GeneratePress is taking especially regarding the complete switch from jQuery to pure CSS (I have no clue on jQuery lol, and know some stuff on CSS) plus all the other easiness and speed optimizations.

    Anyway, I tested it in my local, so far it works good, except some stuff I noticed from first sight:

    1- A horizontal scroll bar on the bottom added to the website, it’s like it added an empty space on my left (since I’m using RTL website), tried to zoom-out the website and looked in all the empty space, there was nothing to notice, even with the Chrome’s inspect tool. Tried to deactivate some plugins but no change.

    2- When I click on the search icon, the focus is still on the search button, usually it goes to the text area, so when “we click” => “we type”, but right now: “we click” => “we click again in the text area” => “we type”.

    I may upload the actual website online (staging) if you need to have a look.

  4. Wow, really impressive list of improvements. I really appreciate you making what you have even better, instead of only adding new features. I’ll put the beta tot a test. I’m not a programmer though, so it’ll be just user feedback (IF I can find a bug that is, you usually make it quite hard to find those 😉

  5. Love it. Do I get half-credit for the System Font-Stack issue I’d mentioned from before? 😛

    * Does anyone know if Local by Flywheel (2.1.2) would be messing around with any of the CSS caching? I’m using nginx / varnish
    * Assume no problem for us to also run current GP Premium with this?


      • Seems fine now. The Customizer on first initialization (?) was not previewing my changes to the “Additional CSS” and instead I was not seeing the same thing as I was on the live site (outside of Customizer).

        • The CSS cache in GP only applies to the CSS generated by our options – not the Additional CSS control.

          Caching is also completely disabled in the Customizer. Perhaps you had some sort of javascript error happening?

  6. Hmm.. unsure of how to report issues. Just here? GH?

    In style.min.css
    * Open Sans font is still shown on line 1554 (body) though overridden later in the css.
    * Also on 1561 line-height has no measurement system, should it?

  7. I got no time to dig in very much due to my new job as a nodejs dev buuut it’s live on my website, all is fine so far.

    I made a few compares with the speed test tool.
    The speed difference isn’t that big, however switching to pure js means a lot and it’s a huge step forward.

    Thanks for your work 🙂

    • GP was already fast, so the difference certainly isn’t massive. The big difference you’ll see is on fresh installs, as things like jQuery, Google fonts and the full Font Awesome library aren’t loaded. The page size on a fresh install is less than 20kb 🙂

      Thank you for trying it out – I appreciate it!

  8. Hi Tom,
    is it possible to stop loading jQuery also in an old site installation that use Gp 2.0 and GPP 1.5.5?

    I can’t wait to test the speed difference 🙂

    • Your menu item text color is set to white. If you change it to something darker in Customize > Colors > Primary Navigation, you should see it 🙂

  9. Tom,

    I don’t know if its a theme issue or Beaver Builder issue, but sure you will know. Mobile view scroll to the bottom of the page to the map, then turn your phone horizontal part of the map goes grey along the bottom and it renders itself, but when you turn your phone portrait it corrects itself.


  10. I’m running the beta on an adults-only social network I’m in the process of setting up, and so far it’s running smoothly. I’ve got a ton of plugins installed, and so far, everything seems to be working fine. Some of my plugins: BuddyPress, bbPress, Events Calendar, WP WriteShare, myCRED, WooCommerce, Jetpack, WC Marketplace, Age Gate, and PMPro to name the major ones.

    If you want the URL, let me know.

  11. Are we supposed to disable the plugin when we upload the theme? I found that if I do, I lose a lot of functionality, and get a message telling me there are Premium Modules Available. But if I do not, it seems to me that my headers aren’t working the way I expect.

    Of course, this could all boil down to me being a brand-new not-very-bright user of GP Premium. I just started using it a couple days ago. After having some issues, and finally reading (most of) the documentation, I realized I was adding CSS to the Additional CSS section to do things that could already be done by GP Premium.

    I’m loving some aspects of this way of building websites, but I’m having problems figuring out how to make different mobile-vs-tablet-vs-desktop looks using it.

  12. Hi Tom,

    2.0 didn’t go so smooth on my test site. Installed per your instructions and when I go to customize, the left sidebar with all the options comes up, but in the live display area to the right I get a list of errors scrolling by followed by a black screen. Below is the last few lines of the error log entry. The rest of the entry is a bunch of copies of the lines preceding the last line.

    Hope this helps.
    Steve Pritchard

    [03-Dec-2017 18:34:42 UTC] PHP Notice: Uninitialized string offset: 3 in /home/south920/public_html/wp-content/plugins/woocommerce/includes/class-wc-geo-ip.php on line 1592
    [03-Dec-2017 18:34:42 UTC] PHP Notice: Uninitialized string offset: 4 in /home/south920/public_html/wp-content/plugins/woocommerce/includes/class-wc-geo-ip.php on line 1592
    [03-Dec-2017 18:34:42 UTC] PHP Notice: Uninitialized string offset: 5 in /home/south920/public_html/wp-content/plugins/woocommerce/includes/class-wc-geo-ip.php on line 1592
    [03-Dec-2017 18:34:42 UTC] PHP Warning: Cannot modify header information – headers already sent by (output started at /home/south920/public_html/wp-content/plugins/woocommerce/includes/class-wc-geo-ip.php:1592) in /home/south920/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1248

  13. hey Tom,

    Weirdly with the beta it seems like jQuery is loaded… (webpagetest Waterfall view list it).

    Any idea what would make it loaded ?


    PS: still continuing testing, just found it weird that jQuery was listed in there

  14. Testing my WordPress subdomain multisite for is going well. I have stripped the Google Fonts to use the System Fonts. There are 23 plugins including GP Premium (many aren’t in use yet, but still…). Tested the site in Google, Brave, Edge, Firefox, Opera and Tor. Pingdom @ Stockholm, Sweden gives an A 99 performance grade with a load time of 1.08 seconds 338.3 kb Page size with 40 requests and is faster than 87% of tested sites. Unfortunately, their San Hose site is down and I’m not telling you what it looks like from Australia, but it’s less optimistic (dismal is how I would put it). PageSpeed Insights puts Mobile at 71 / 100 but Desktop at 94 / 100. GTmetrix gave a Pagespeed score of A(99%) and YSlow Score of B(83%): It wants me to make fewer http requests and I am on a CDN with Cloudflare (expletive deleted!). Think with Google Mobile gives a load time on 3G networks at 2 seconds with a low estimate of customer loss. The site comes in at Excellent, better than the 5 seconds for top performers (it took some work). The dotcom monitor for 24 locations puts the average first visit at 6 seconds and average second visit at 1.9 seconds. Of course the stats were a little skewed by Buenos Aires at 50.7 seconds and Mumbai at 24.9 seconds. Dallas was 1.1 seconds and Montreal tied with Miami at 1.2 seconds. Beijing was 4.8 seconds (China hasn’t banned my website yet).

    Out of all of that there were no errors per se. However, you may not that I have “nuanced” the pages with gradient backgrounds. As a result (I think), you see some strange flashing and displays in the various browsers, especially bad in Tor. It looks like the page is rendered and the additional css is ‘overlayed(?)’ causing the pages to rerender. I’m not certain that this is anything you can fix, but it is annoying and I have been looking at some way to mitigate it.

    Error? Probably not in your code.

    Looks good and you’ve done a great job. When I found your theme I had tried dozens of others with attendant drama. GeneratePress ended the drama and I am so grateful.

      • It’s my opinion that anyone who is serious about their website does need to use the website speed tools. The common wisdom is that if it takes longer than 3 seconds to load the page, potential customers will bail.

        I’ve tested dozens of themes and yours is the fastest I’ve found — you did some excellent work. I don’t know what more you could do (but look forward to Version 3 anyway).

        Your update is timely.

  15. One thing I really miss is the ability to completely remove the “Read more” option from the grid meny where all the articles are. It would be nice to just have the option with a picture and a few words about the article contents below the picture. Just like in the major newspapers.

  16. This is a problem, but it might be WordPress and not GeneratePress, but under the Customizer –> Blog –> Comment, the only options are ‘Archives’ and ‘Single’. There used to be other choices. As a result, Excerpt word count has no affect. The work around is ‘read more’, but it is annoying.

    Please fix it if you can. It’s broken.

      • I actually don’t remember but it had to do with blogs. Whatever happened, when it was changed, I no longer could set the excerpt word count on the blog page — it did work before.

        It’s possible that I don’t understand how to make the new settings work.

  17. Hello Tom! I have installed the update on a test copy of my site and I have checked an “error” with respect to the previous version.
    In this case it is about the integration with WooCommerce.
    Previously the amount of the cart appeared just to the right of this one; with the new version it appears in a second line in the menu.
    I do not have much technical knowledge, so I can not provide more information either.
    The version with GP 2.0 is at and the previous version is at

    Thanks for everything.

  18. Hi Tom,

    after I installed the beta on my existing system, I cannot longer open a sub menu on hover. The click on the arrow and on the item works. But If I activate the hover option, the menu only opens on the active state (left click, left click and hold, right click).

  19. So far, so good on the update staging install I have for this.

    I found those new admin panel metaboxes in the Customizer just fine. I’m not finding any conflicts, however, the update doesn’t appear to resolve two mutually exclusive issues with WP Show Posts that were logged at that plugin’s support board:

    I’m curious to learn more about the new System Stack default font option. Are there plans to provide more info about how that functions, which font family is used, how to customize, etc.

    I don’t have a vanilla install staging site handy so the staging test site is loading jQuery via other plugins but having said that, I don’t notice it being loaded by GP so hooray for that 🙂


  20. Just removed the release version and installed the beta on one of my test sites.

    When I activated I received the following message:

    supplied for foreach() in /home/site/public_html/mysite/wp-includes/widgets.php on line 1322

    Warning: array_merge(): Argument #1 is not an array in /home/site/public_html/mysite/wp-includes/widgets.php on line 1159

    Warning: array_diff(): Argument #2 is not an array in /home/site/public_html/mysite/wp-includes/widgets.php on line 1160

    Warning: Invalid argument supplied for foreach() in /home/site/public_html/mysite/wp-includes/widgets.php on line 1162

    Warning: array_merge(): Argument #1 is not an array in /home/site/public_html/mysite/wp-includes/widgets.php on line 1170

    I checked to see if there was something crazy with my widgets, but they’re all stock with no changes from the initial installation. When viewing my widgets page I get:

    Warning: array_merge(): Argument #5 is not an array in /home/site/public_html/mysite/wp-includes/widgets.php on line 1159

    Warning: array_diff(): Argument #2 is not an array in /home/site/public_html/mysite/wp-includes/widgets.php on line 1160

    Warning: Invalid argument supplied for foreach() in /home/site/public_html/mysite/wp-includes/widgets.php on line 1162

    Warning: array_merge(): Argument #1 is not an array in /home/site/public_html/mysite/wp-includes/widgets.php on line 1170

    Same message with all plugins except GP Premium disabled.

  21. Wow..!!!
    This is EXACTLY what I was hoping. I’m a simple&clean&efficient&light code lover, and this is just the next step I was willing for.
    I’ve already installed it and I’ll investigate deeper in the next weeks.
    I’ll check its functionality with elementor.

    Thanks to the team for this huge effort. This are the things that really make the difference!

  22. Is the next issue count as a bug?

    I am using the premium plugin as well. When I enable “Load essential icons only”, the cart icon gets replaced by “Cart” text instead. Since you are using the cart icon in the theme by default, isn’t it considered “Essential”?

  23. Testing it out, just two tiny things

    1- when you’re customizing the colors the first few items are background colors, but it doesn’t have the “Background” title as in the previous GP version. See screenshot, you can see “text hover” and “text current” are labeled, but not background.

    2- I used custom CSS in the past to change the color of the slideout menu toggle button, by default when you hover on mobile it changes to white. Here’s the css I’m using that works on an older version but not this beta one:

    @media (max-width: 768px) {
    .mobile-header-logo .menu-toggle {
    color: #343433;


  24. Has anyone tried using Elementor? It’s not working for me…tries to load and goes to a white page. Tried w/ different browsers.


Leave a Comment