GP Premium 2.0 – Introducing the GP Theme Builder!

GP Premium 2.0 brings you theme building using the core block editor and the GenerateBlocks plugin.

Do you want stunning page heroes, personalized post meta, or custom sidebars & footers? You got that. Or maybe a custom author box without adding a plugin or writing code? How about your very own custom element populated with custom field content? But what if you could build your own single posts and post archive templates? Wellโ€ฆ you got that too!

Throw Element Display Rules into the mix and your site design options are endless. Do you want a different post layout for your search results? Or how about a category-specific post layout? Well, that’s all possible too.

Yep, that’s right, using the GP Premium Elements module you can now build, style and integrate dynamic theme elements using the core block editor and GenerateBlocks.

And this is just the very beginning of our journey towards a full block-based theme building experience.

So, how did this come about?

Over the last 18 months, we have been carefully planning, designing, and developing the necessary components to realize what has been a long-term vision for the future of GeneratePress – block-based theme building.

At the center of our plans was the fundamental rewrite and release of GeneratePress 3.0. Aside from the significant reduction in code overhead, it introduced dynamic control over the themes content templates. This new function allowed templates to be changed dynamically without the need for creating Child Theme templates in a lot of instances.

Next, we needed some block-building tools that were both lightweight yet feature-rich. The blocks had to be multi-purpose as opposed to individual blocks with specific use cases. This resulted in GenerateBlocks and GenerateBlocks Pro. A simple 4 block plugin that provides the basic blocks required for any kind of layout or element. Simple, effective, and perfectly suited to output static and dynamic content.

With GeneratePress 3.0 and GenerateBlocks in place, we were now ready to deliver block-based theme building.

Dynamic Data

When using Block Elements, you can now add dynamic data to blocks inside our GenerateBlocks plugin!

Dynamic text/link types.

While using the Headline or Buttons block inside GenerateBlocks, we can now tell them to use the following Dynamic Text Types:

  • Title – the post/page/term title of the current page.
  • Post date – the published or updated date of the current post.
  • Post author name – the name of the post author.
  • List of terms – the post terms associated with your chosen taxonomy.
  • Comments number – the number of comments the post has.
  • Post meta – the value of a custom field name.
  • Term meta – the value of a term custom field name.
  • Author meta – the value of a user custom field name.

We can also apply Dynamic Link Types to these blocks:

  • Single post – the link to the current single post
  • Author archives – the link to the archives for the current author
  • Comments area – the link to the comments are of the current post
  • Next page of posts – the link to the next page of posts in the archive
  • Previous page of posts – the link to the previous page of posts in the archive
  • Post meta – the value of a custom field name.
  • Term meta – the value of a term custom field name.
  • Author meta – the value of a user custom field name.

With these options available to use in Headlines and Buttons, we’re all of a sudden able to build our own theme elements directly in the editor. No need for complex Customizer options that have limitations – you’re in complete control.

Content Templates

Content Templates allow you to take over the default theme design of your content area, regardless of whether you’re in archives (the blog) or single posts/pages.

This means you’re no longer limited to the Customizer options – you’re in complete control of your design/layout.

For example, here’s the default blog design in two columns.

Default post columns.

Previously, we were limited to using the Customizer when it came to designing our posts. Now, we have total control of the layout and design directly in the block editor.

Content template in the editor.

Using GenerateBlocks and GP Block Elements, we can design our posts using dynamic data, and then apply them to our live page based on our chosen Display Rules.

So our default post columns now turn into this:

New post columns.

Content Templates can be used for your archives, or even single posts/pages. And thanks to our Display Rules, you can have completely different templates for different areas of your site.

On top of that, you can even apply different Content Templates to posts with specific terms, custom fields, or the first post all within the same Display Rule. That means your main blog page can use completely different Content Templates for different posts.

When these conditions are set, you can give your Content Template a parent to fallback to if the condition isn’t met.

Content Template conditions.

Check out the video below to see Content Templates in action.

Page Hero Templates

You might be familiar with our Header Element that makes use of template tags to build dynamic page heroes. This works well, but it doesn’t allow you to visually build your page hero – it requires a certain level of HTML/CSS knowledge.

Now, we can scrap the custom HTML/CSS and build our page heroes directly in the editor.

Dynamic page heroes

Once we have the Page Hero Template designed to suit our needs, we can add the necessary Display Rules to apply it throughout our website. The image below shows what the above template is rendered as within one of our single posts.

Live page hero using our Page Hero Template.

We’re now able to achieve a dynamic page hero with no ugly template tags or HTML – everything is done directly in the block editor.

Check out the video below to see the Page Hero Templates in action.

Post Meta Templates

In some cases, you may want to keep the default Content Template that the theme provides, but design your own post meta area. This is where Post Meta Templates are super useful. They allow you to build out your post meta areas in the block editor using whatever layout you need.

Custom post meta template.

Things like author avatars, author names, posted on dates, updated on dates, comment links and much more are all right at your finger tips. No more PHP filters or checkboxes in the Customizer. You can even use the Buttons block to output your post terms (categories, tags etc…) using separate buttons!

Post meta term items using the Buttons block.

Post Navigation Templates

All of our dynamic data has a source option that allows us to grab dynamic data from the current, next, or previous posts. This allows us to build our very own Post Navigation Templates for our single posts.

Custom post navigation template.

Using the above, we now have a completely custom post navigation area with the titles, featured images, and author names of the next and previous posts.

Post navigation template on the front-end.

Archive Pagination Templates

Lastly, we can build our own archive pagination templates using the Next Posts Page and Previous Posts Page link options.

Archive pagination template.

And that’s just scratching the surface! So far, we’re incredibly happy with how flexible these new Block Elements are. This is the first step in converting GeneratePress into a hybrid full-site editing theme. You get the freedom of designing your theme elements in the block editor along with the power of Display Rules to conditionally add those elements wherever you need them. The days of completely different designs for different categories or custom post types are here!

Site Library

Our Site Library has been completely rebuilt from scratch using React! Not only does everything feel much faster/more intuitive, but it’s also way more reliable across different hosting services that had issues with the previous version (WordPress.com, EasyWP, etc…).

New Site Library

Less jQuery

We’re that much closer to completely ditching jQuery in GP Premium! Our Masonry and Infinite Scroll features have been re-written using vanilla javascript!

That means the only jQuery left on the front-end of GP Premium is our sticky navigation and some WooCommerce features (WooCommerce uses jQuery by default). We have some awesome plans for a new sticky element feature that will be coming soon!

Sections

Our Sections module is now officially deprecated. It will continue to work/be activated on sites that have it activated, but it will no longer be available in the list of modules to be activated.

Sections was our very first attempt at a “page builder” back in the days before page builders were popular. It was a big part of our development, but with the emergence of the block editor and GenerateBlocks, it’s no longer needed.

Full Changelog

  • Blog: Rewrite infinite scroll using vanilla javascript
  • Blog: Rewrite masonry using vanilla javascript
  • Blog: Add separate infinite scroll path element to footer
  • Blog: Fix missing single/page featured image options when archive image disabled
  • Blog: Add aria-label instead of screen-reader-text to read more button
  • Colors: Fix back to top Customizer color preview
  • Elements: New Content Template Element
  • Elements: New Post Meta Template Element
  • Elements: New Post Navigation Template Element
  • Elements: New Page Hero Block Element
  • Elements: New Archive Navigation Template Element
  • Elements: New Editor Width option in Block Elements
  • Elements: Move Block Elements options into editor sidebar
  • Elements: Show Site Header options by default in Header Element
  • Elements: Fix Classic Editor issue in Block Elements
  • Elements: Add a list of active Elements to page editor
  • Elements: Add a list of active Elements to the admin bar
  • Elements: Add notices to Customizer if Elements may be overwriting options
  • Elements: Disable mobile header menu if menu is disabled via Layout Element
  • Elements: Improve Display Rule loading performance
  • Elements: Add block type filter to Elements dashboard
  • Elements: Add generate_element_display filter
  • Elements: Add No Results as a Display Rule condition
  • Menu Plus: Hide slideout toggle at set mobile menu breakpoint value
  • Menu Plus: Fix sticky menu height when using navigation as header
  • Menu Plus: Add dimensions to mobile/sticky logos
  • Menu Plus: Make Off-Canvas menu take up full width of canvas
  • Menu Plus: Fix menu bar item sticky transition
  • Menu Plus: Prevent sticky sidebar nav if mobile header is set to sticky
  • Secondary Nav: Fix centered secondary navigation items using flexbox
  • Secondary Nav: Fix conflict with Nav as Header option
  • Secondary Nav: Fix missing menu cart items when using click dropdowns
  • Sections: Officially deprecate module
  • Site Library: Completely rebuild Site Library using React
  • WooCommerce: Move full width single product CSS to inline CSS
  • WooCommerce: Use wc_get_product() instead of new WC_Product()
  • WooCommerce: Add more checks for WC() class to prevent error logs
  • WooCommerce: Add generate_wc_cart_panel_checkout_button_output filter
  • WooCommerce: Add generate_wc_sticky_add_to_cart_action filter
  • WooCommerce: Add generate_wc_show_sticky_add_to_cart filter
  • WooCommerce: Re-write quantity button javascript to be more performant/extendable
  • General: Update theme install link
  • General: Update alpha color picker script
  • General: Use correct URL scheme in external stylesheet URLs
  • General: Check if FS_CHMOD_FILE is defined in external stylesheet generation
  • General: Use inline CSS when using AMP plugin
  • General: Update EDD_SL_Plugin_Updater class to 1.8.0
  • General: Clean up javascript throughout plugin
  • General: Replace deprecated jQuery functions

100 thoughts on “GP Premium 2.0 – Introducing the GP Theme Builder!”

  1. Wow, to say i’m excited would be an understatement. Will try it out and let you guys know if i stumble into any issues. Thank you !!

    Reply
  2. So, what about Generate blocks? Is that something extra I need or is that now part of the theme builder? If I upgrade to the lifetime, does that mean I have to continue to pay the $99 a year for Generate Blocks Pro as well?

    How else does the theme builder work?

    I’m confused.

    Reply
  3. I love Generate Press.

    I use it with WP Buzz for 100/100 pagespeed score on both mobile and desktop.

    GP is the best thing that has happened to WordPress

    Tom you are Elon Musk of WordPress ๐Ÿ™Œ๐Ÿ˜€

    Reply
  4. Hi Team,

    That’s great news! I’ve been playing around with the alpha most of the morning and it’s really powerful! If we have any feedback, what is the best method to share that with you guys?

    Cheers. Olivier

    Reply
      • I would love for this to be out soon! One of my biggest sites is coming up on its prime season and it’s in a need of an overhaul. And before I dig too deep in speeding it up (I’m down to the minor details…the ones that take the most time), I’d love to get it rejiggered. And with the Google May Speed thing looming…

        Reply
  5. Exciting indeed. My concern is CLS impact. I’ve had to redesign my page header multiple ways to achieve the same design in GP premium and with Elements to finally settle on a version that didn’t raise my CLS in Core Web Vitals. I have done this repeatedly with client’s sites too that use GP. So I want to make sure that your new page building elements and the method that you’re most commonly suggesting to people actually does take CLS impact into account. I don’t want to have to find a hack everytime to lower it.

    Reply
    • This won’t be any different than building your page header any other way, including HTML/CSS. CLS really depends on the content you add vs. the way it’s being added.

      Reply
  6. This is fantastic. Will these modules be easily packaged. Like Kadence theme recently came out with a child theme builder to neatly export designs for clients. Something along those lines perhaps?

    Reply
  7. And made in Victoria! I haven’t actually used your products*, but GP has been on my radar for many years when I almost used it for a tourism business here in Vic (I ended up using a competitor, hated it, and that started me down the path of building my own themes from scratch), so I almost fell off my chair when I just noticed you were local!

    What you have listed here is pretty much what what I’ve been trying to find the time to build into my base theme, so it may be time to revisit using an external base theme.

    *I did install GenerateBlocks earlier this week, and was impressed.

    Reply
    • This replaces existing post loops provided by the theme. It doesn’t allow you to build custom post loops and add them to your pages (which is what WPSP does).

      Reply
  8. This sounds really really awesome. I love how you think about how you can use the new tools (block editor) available to make building sites faster, easier but still super customizable and keeping it light as well. You’ve done it with GenerateBlocks and this looks very promising as well. ๐Ÿ™Œ

    Reply
    • You can already build footers. Headers are a bit more difficult due to the complexities of navigations/mobile menus, but we’re working on it ๐Ÿ™‚

      Reply
      • No way, awesome! ๐Ÿ™‚

        I noticed that Astra lets you select number of columns for the footer but not for the header!

        It would be amazing to be able to select how many columns to have in the header.

        Like this for example:
        row > col1 + col2
        row > col1 + col2 + col3
        row > col1

        Reply
  9. Wow, awseome update! Thank you Tom!
    Is this theme building functionality, compatible with the official WordPress Full Site Editing functionality?
    Are these working together?

    Reply
    • This is a different kind of system. Everything is purely dynamic, and you can apply your templates dynamically using our Display Rules.

      FSE is still very much in development, and I would be very surprised if they implemented something like Display Rules ๐Ÿ™‚

      Reply
    • The dynamic content is pulled from the current post/page/custom post type post being viewed. So as long as the content exists, it will work ๐Ÿ™‚

      Reply
      • Excellent! Just created a staff directory type site with Pods with lots of php and elements to do what I wanted – this looks like a much better option!
        I’ll get it installed on a test server and have a play!

        Thanks!

        Reply
        • Amazing Sean, I was having the same questions since I work a lot with Pods. If you have a blog/twitter or sth it would be awesome if you shared your progress with how you use GPP 2.0 with Pods.

          Cheers

          Reply
          • Marcus – had a quick look and it does indeed work with a Pods custom post type.

            One thing I can’t get is a field that is a photo – the Dynamic Image block only sems to allow the featured image or user avatar – I have the staff member photo set as a Pods file upload field.

            Not sure if I will be able to use this or if I will have to redo the Staff Member Pod to use the featured image instead – I was trying to get away from the whole admin side looking too WordPressy!

  10. Hi,
    a user can hardly ask for more. That’s just great. Thank you very much for this great way that Generatepress is once again hugely upgrading. Congratulations and good luck.

    greetings
    horst

    Reply
  11. Poor implementation of theme construction. Very uncomfortable. Ready-made templates are not pretty or well thought out. I hope the authors will listen to my opinion and finalize the theme constructor.

    Reply
  12. First of all this the new Theme Builder blocks are a breakthrough. Fantastic! I can see I may never have to touch a php template ever again ๐Ÿคž

    Not sure if this is the place to file bugs (is it?) but I seem to be having a problem importing (the search theme) from the site library. Hangs on ‘Activating plugins’
    Maybe this? ๐Ÿ‘‡
    Failed to load resource: the server responded with a status of 500 (Internal Server Error) …/generatepress-site-library/v1/activate_plugins?_locale=user

    Reply
    • Thanks! Any chance you can check your `error_log` file for the actual error? I’m assuming it’s something server related. Let me know ๐Ÿ™‚

      Reply
      • Hi! Sorry. Just had a look and nothing logged since April 2020. Turns out I didn’t have log_errors enabled! ๐Ÿคทโ€โ™‚๏ธ I have enabled them now and tried the process again but still nothing has appeared!

        Reply
        • Wait! No! I don’t know what I’m doing… Found them

          [30-Mar-2021 21:02:25 UTC] PHP Warning: require_once(/home/u687877564/domains/***hiddenmydomain***/public_html/sandbox/wp-content/plugins/happyforms-upgrade/inc/classes/class-happyforms.php): failed to open stream: No such file or directory in /home/u687877564/domains/***hiddenmydomainagain***/public_html/sandbox/wp-content/plugins/happyforms/happyforms.php on line 96
          [30-Mar-2021 21:02:25 UTC] PHP Fatal error: require_once(): Failed opening required ‘/home/u687877564/domains/***hiddenmydomainagain***/public_html/sandbox/wp-content/plugins/happyforms-upgrade/inc/classes/class-happyforms.php’ (include_path=’.:/opt/alt/php74/usr/share/pear’) in /home/u687877564/domains/***hiddenmydomainonelasttime***/public_html/sandbox/wp-content/plugins/happyforms/happyforms.php on line 96

          So it turns out that the issue was caused by the fact that I already had happyforms installed in my test site. Uninstalled happyforms and it went through without a glitch ๐Ÿ‘

          Reply
  13. I’m testing this for dynamic page headers but I noticed that if I have Kadence Blocks activated the Element does not go fullwidth when editing. Not an issue with other block plugins. Guess if I was using strictly GenerateBlocks i wouldn’t care.

    Reply
  14. a very complete theme builder – page builder, congratulations!!
    I would like to see the white label option on the horizon ๐Ÿ™‚

    Reply
  15. Hi Tom and Team GP!

    I’ve been using GPP 2.0 beta on a new site which is almost ready to launch. I wanted to start using the new features straight away rather than having to re-do things when GPP 2.0 is released.

    Do you have a time frame for official release?

    It would be really useful if you could add a rough estimate to the top of this page, so that those who are considering building a website in the nest few weeks know whether to start adapting to the new features.

    Thanks again for all your, and Team GP, hard work in taking GP and GB to the next level!!!

    Reply
      • Screeeeeeeeeeeaming with excitement.

        Just adding a note here in case it has not been mentioned already (apologies if it was) – when using this with Pods for custom post types/fields – Pods must be using the rest API otherwise the dreaded updating failed error crops up over and over.

        Reply
  16. Tom you’re stuff is great! I was told about GeneratePress 4 (almost 5) years ago and I can’t thank the fellow enough!

    I just purchased a single site license of GenerateBlocks Pro to get a feel for it and after a couple of days playing and learning it along with this news, I will definitely be upgrading my license on that ASAP.

    Keep up the excellent work!

    Lawrence

    P.S. ~ The fact that you’re a fellow Canadian makes you that much cooler by default as well! ๐Ÿ™‚

    Reply
  17. Thank you very much!

    I hope I’m here in the right place to post my comment / experience / problem. How can I use the new options to style blog posts on other pages than the standard blog post page / archive. I like to put my (dynamic) blog posts on a static page.

    I tried with the wp core block and with wp show post (see my example page: https://spd-amelsbueren.de/). But new post template doesn’t apply on both of them. Here’s what it should look like: https://spd-amelsbueren.de/sample-page/

    Thank you very much for your help.

    Kind regard
    Thomas

    Reply
  18. Wow, this looks incredible! I’ve been testing for the past few days and I’m amazed. This is what I’ve been looking for! Finally the power of GenerateBlocks combined with template building AND dynamic data. Well done! Is the grid block going to be able to use dynamic data?

    Reply
  19. These are all very cool enhancements, however, I am genuinely anxious over the amount of work it will to convent existing sites to Blocks. I have more than 100 and as of now Blocks aren’t 100% WCAG compliant so we can’t upgrade until they are.

    Additional pain points here include:

    1) For developers, not having a way for client users to manually override header and copy styles on a per page basis makes it that much more difficult to keep them on brand. Having a developer option to shut off access to those styling options would go a long way.
    2) I’m having serious anxiety over how to convert all existing sites away from Sections and Elements once Blocks are WCAG compatible. Are there any plans for a migration tool? Without that, devs are looking at five figures of time just to convert everything. Add to that, we use the existing GP Shortcode tool, WP Show Posts, and Simple CSS plugins to provide additional functionality. Having a way for that content to migrate would be necessary as well.

    Drew

    Reply
  20. Release by release, and the theme is getting closer to a point where it’ll hit the limits of adding performance improvements. Such a beautiful piece of code, and your team is really awesome. I’m using it for 2 years without any issues.

    Reply
  21. Hi Tom

    Looks like a great update. Just 1 question. When creating a page hero using a block element how do I now set the top nav to be merged? I can’t seem to figure it out.

    Matt

    Reply
  22. Am I right that i still cant define a specific WordPress-Page as a dynamic link, to build a fully customized navigation bar?

    Reply
  23. I have few Custom Posts (created using CPT UI) & Custom Fields (created using ACF).
    Now I need to create a Custom Post Template in which those Custom Fields will be displayed as per simple IF conditions.

    Lets say, my Custom Post is named as ‘recipes’

    Now, lets say, I created 2 template files ‘recipes.php’, ‘recipes-content.php’

    My question is:

    1) Will I be able to open this custom template file using GeneratePress 2.0 (Pro) and dynamically display my ACF Custom Fields ? I mean, GeneratePress Theme builder can read ACF fields and display them dynamically in the custom template ??

    2) Can we apply simple ‘IF’ conditions while displaying these Custom Fields in the Custom Template ? (for eg, check if the value of a Custom Field is NOT NULL, check if Custom Field’s value contains a certain String etc). This basically prevents display of Custom Fields if they are empty (NULL) etc.

    Please clarify !

    Reply
  24. This is the fix create a header element select merge content and specify pages it will be used then create another element with blocks and do your hero.

    Reply
  25. I’m really excited about this. Our site is built with a Elementor and I always wanted to replace it with GP Premium. I want to ask if it is post possible use “load more post” feature with GP Premium and can i easily create different post grid layout? Ex: Currently using Ultimate Addon for Elementor and it featured layout for Blog post to display blog post on the home page and category pages. Will really appreaciate your reply.

    Reply
  26. This new GeneratePress theme builder is so cool!

    I Just got a project to convert an Elementor based website to GeneratePress based theme using the Block Editor.

    Already in love with it, and look forward for the future when Block editor becomes the new standard for WordPress websites.

    Reply
  27. Amazing Theme because Since 2020 I use generate press theme. So, I have a lot of opportunities to design and Customize my site. Even No need for any extra plugin for Customization because It has a lot of Site Library Templates. You can use it for any Site like E-commerce, Sports, Health, And any store.
    Thanks generate press Team!

    Reply

Leave a Comment