Content Visibility for Gutenberg

Block visibility is powerful

A while ago I wrote (and created a video) about how I was creating and using dynamic content with Gutenberg. But it was based on Blocksy, the theme I use on this site. That's great if you're also using Blocksy. But what if you're not? The good news is that there are now three different solutions that offer content visibility for Gutenberg, regardless of what theme you're using.

Each of the three offer free versions to get started. But the power shows up for two of them in the Pro versions (each which costs $49).

Today I took each for a spin (the pro versions) and I thought I would tell you about them. But first, let's start at the beginning and answer the most common question.

Why would anyone want conditional visibility for their blocks?

Role Based Display

I sell a pair of eBooks on this site. What if you have already purchased them? Might I want to change the display of the purchase buttons if you're in the “customer” role already? Absolutely. I want to offer you something else. But only if you're in that role.

Schedule Based Display

I run an event in Cabo called CaboPress. I have an application process because it's an invite-only event. Do I want that application available all the time? Nope. I want to define when it's available and when it's not. In other words, I want conditional visibility for the form.

Category or URL Path Based Display

In the Blocksy demonstration video in that linked post above, I show you that I want to insert content based on the post content category, or using the path of the content. In other words, I want something to show up (like a small text-based ad) if you're on a post in a certain category (like “memberships”).

Logged In Status or Screen Size (Device) Display

If you've used Beaver Builder or other page builders, you've likely already come to enjoy conditional visibility – like their ability to hide or display content based on whether you're logged in.

Most page builders also give you controls over the device. In other words, you might like to hide a section if the content is viewed on a tablet or mobile device. Now you can do that with Gutenberg blocks.

There are so many other reasons too. When it comes to content visibility for Gutenberg, the sky is really the limit. We haven't gotten into things like:

  • Showing welcome messages based on where people are coming from (referrer)
  • Showing custom messages based on what's in a person's cart
  • Showing custom messages based on query-string parameters

All of these become possible when that message is in a block and you use one of these solutions for block visibility.

Comparing the three options

WordPress Tables Plugin

Content Visibility

This is a free content visibility plugin that has several add-ons, including one for geo-location rules (which makes it stand apart). It is simple and easy to grasp and learn.

If you look at the right sidebar, you'll see that you have role-based constraints, along with date and time scheduling, and support for geolocation.

Conditional Blocks Pro

Conditional Blocks (free) and the Pro edition are the ones I hear the most about, or see the most – when it comes to articles and Twitter. So I was excited to check them out. They delivered as I expected they would.

One thing I noticed when looking at all of these plugins is that it was harder when I wanted to apply content visibility rules to more than one block at a time.

This is (sort-of) solved in Conditional Blocks Pro – by having a preset manager.

Once I create a preset, I can use it and apply it to blocks faster and easier (but still one at a time).

Block Visibility Pro

Block Visibility comes both as a free plugin and the Pro version, which is what I was testing. It is incredibly powerful and still easy to use. You can see the right sidebar and many of the options it gives you.

You can also simplify your interface by going to their larger settings screen and turning some options on or off.

The fact that the Pro version has a “location” rule engine (which isn't Geo-location, but more about the location of the posts on your site) puts it in a class all on it's own. You can hide and display blocks based on taxonomy, postID, and more.

The integration for WooCommerce, which is promised soon for Conditional Blocks Pro, also makes it a stand apart solution.


I honestly think you'll be fine with any of the three that you go with. The point is that all of these exist and will help us create more and more dynamic and nuanced sites easily (once you embrace Gutenberg as I have).