Description
Steuber Block Logic adds its settings to the blocks you already use, in the block sidebar of the editor.
Display conditions
- Show or hide any block by login status, user role, post type, page type or date range.
- Combine rules with AND, and add OR groups for alternatives.
- Inside a Query Loop, the rules are checked for each item.
- A hidden block is left out of the page output.
Dynamic content
- Fill block text, links and images from 15 dynamic tags: post title, excerpt, date, modified date, URL, terms, post ID, comment count, comments URL, featured image, site title, tagline, site URL, site logo and current date.
- Add text before and after the value, and a fallback for when it is empty.
- See the real values in the editor.
Entrance animations
- 36 entrance animations for any block.
- Visitors who ask their system for reduced motion see the content without the animation.
Responsive visibility and layout
- Hide a block on desktop, tablet or mobile.
- Stretch a block to the full screen width on the devices you choose, and keep its content aligned with the content or wide width.
Steuber Block Logic Pro adds more conditions, more dynamic tags, scroll and mouse effects, sticky blocks and custom attributes.
External services
Steuber Block Logic uses Freemius (https://freemius.com), a licensing and payments service run by Freemius, Inc., for its optional opt-in and for upgrades to Steuber Block Logic Pro. The Freemius SDK in the plugin’s vendor/ folder only sends data to Freemius when an administrator chooses to; nothing is sent without that consent, and the plugin itself contacts no other service.
- Opt-in: after activation, an administrator can allow or skip sharing. Only after allowing, the SDK sends the administrator’s name and email address, the site’s address and title, the WordPress and PHP versions, the site language, the plugin and SDK versions, and the lists of installed plugins and themes. While the site stays opted in, it also reports activation, deactivation, uninstall and version changes of this plugin. Skipping sends nothing, and an administrator can opt out later on the Plugins screen.
- Upgrade and pricing: when an administrator opens the upgrade link or the pricing page, the plans and prices are loaded from Freemius (api.freemius.com), and the checkout runs on Freemius.
- Deactivation feedback: when the plugin is deactivated, an administrator can send the reason to Freemius. It is only sent when the administrator submits it.
Freemius terms of service: https://freemius.com/terms/
Freemius privacy policy: https://freemius.com/privacy/
Steuber Design privacy policy: https://steuberdesign.nl/steuber-block-logic/privacy/
Support
- Steuber Block Logic (free): ask in the plugin’s support forum on WordPress.org.
- Steuber Block Logic Pro: use the support page at https://steuberdesign.nl/steuber-block-logic/support/. The WordPress.org forums are for the free version only.
Security
Please report security vulnerabilities privately to info@steuberdesign.nl, not in the support forum. How reports are handled is described in the security policy at https://steuberdesign.nl/steuber-block-logic/security/. Contact details are also published at https://steuberdesign.nl/.well-known/security.txt.
Source code
The JavaScript and CSS in assets/build are compiled from the human-readable sources in assets/src, which ship with the plugin. To build them yourself, install Node.js 20 or later, then run npm ci and npm run build in the plugin folder (the build setup is in package.json and webpack.config.js). The PHP code in php/ is not compiled. The vendor/ folder holds the Freemius SDK, installed with Composer (composer install --no-dev, see composer.json).
Screenshots






Installation
- In your WordPress admin, go to Plugins > Add New Plugin and search for “Steuber Block Logic”.
- Click Install Now, then Activate.
- Open a page or post in the block editor and select a block. The Steuber Block Logic settings appear in the block sidebar.
Steuber Block Logic needs WordPress 6.9 or later and PHP 8.1 or later.
FAQ
-
What happens to settings made with Pro if I switch back to the free version?
-
Nothing is deleted. Until you edit the affected blocks:
- a block with a display condition that the free version doesn’t have stays hidden for every visitor (the rule fails closed);
- dynamic content from a tag that the free version doesn’t have shows its fallback text, or nothing;
- scroll and mouse effects, sticky settings and custom attributes are ignored.
An admin notice lists the affected content. When you switch back to Pro, the settings work again.
-
Are display conditions access control?
-
No. A block hidden by a display condition is only left out of the page output; its content is still stored in the post. If the plugin is deactivated, every block is shown to every visitor. Don’t use display conditions to protect content that must stay private.
-
Does it work with page caching?
-
Yes. A page cache serves one stored copy of a page to every visitor, so a rule that depends on the moment of the visit would show everyone the same result. When a page contains a block with an enabled date range rule whose result can still change, the plugin keeps that page out of page caches, whether the block is shown or hidden at that moment: it defines
DONOTCACHEPAGE, which most caching plugins respect, and sends no-cache headers when it still can.- A rule in a template part, such as a header, affects every page that uses it.
- Once a date range has ended, or has started and has no end date, its result can’t change any more, and the page can be cached again.
- What a visitor can’t see doesn’t count: the dynamic content of a hidden block, and the blocks inside it.
Login status and user role rules don’t turn caching off, because page caches normally skip logged-in visitors. The current date tag doesn’t either: it often sits in a footer on every page.
The no-cache headers can only be sent before any output. Block themes build the whole page first; a theme that prints the top of the page before the content may already have sent them, and then only
DONOTCACHEPAGEis set. Caches that only look at headers, such as server-level caches and CDNs, can then still store the page, so exclude those pages in their settings.Developers can switch this off with the
steuber_block_logic/cache_guard_enabledfilter (return false); thesteuber_block_logic/uncacheable_renderaction fires, with the reason, when a page is kept out of the cache.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Steuber Block Logic” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Steuber Block Logic” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.0
First public release.
- Display conditions for every block: login status, user role, post type, page type and date range, combined with AND and OR groups, and checked per item inside a Query Loop.
- Dynamic content: 15 dynamic tags for block text, links and images, with text before and after the value and a fallback.
- 36 entrance animations that respect the visitor’s reduced-motion setting.
- Responsive visibility for desktop, tablet and mobile, and a layout option to stretch a block to the full screen width.
- Pages with a block whose output depends on the moment of the visit, such as a date range rule that is still running, are kept out of page caches.
- Dutch translation.
