Skip to main content

WordPress & PHP compatibility

Unyson+ is built on the proven Unyson framework and modernized for today's PHP and WordPress — it is not a legacy codebase frozen at its minimum requirement.

Supported versions​

PlatformRequirementNotes
PHP8.0 or newerThe codebase is 8.2-clean; 8.1–8.2 recommended. The 5.6–7.4 line was dropped so the code can use modern, typed PHP.
WordPress5.8 or newerTracks current WordPress; works with the block editor present (the Page Builder serves the classic screen itself — see below).

The plugin header declares these (Requires PHP: 8.0, Requires at least: 5.8), so WordPress itself warns before an incompatible activation.

It fails closed on older PHP — it doesn't fatal​

Modern typed syntax would fatal on PHP below 8.0. Rather than risk a white screen, the entry point checks the PHP version first and bails with an admin notice instead of loading the framework:

if ( version_compare( PHP_VERSION, '8.0', '<' ) ) {
add_action( 'admin_notices', function () {
echo '<div class="notice notice-error"><p>'
. esc_html__( 'Unyson+ requires PHP 8.0 or higher — the framework was not loaded.', 'fw' )
. '</p></div>';
} );
return;
}
require __DIR__ . '/framework/bootstrap.php';

So an under-provisioned server gets a clear, actionable message — not a broken dashboard.

No Classic Editor plugin, no external dependencies for the editor​

A common misconception is that the Page Builder needs the Classic Editor plugin. It does not. A bundled Page Editor extension serves WordPress's own built-in classic editor screen by flipping the core use_block_editor_for_post_type switch — the same thing the Classic Editor plugin does, in about fifteen lines — so the builder has a full-width home with nothing extra to install. Background: Is the classic editor in WordPress core?.

Security hardening​

Security is treated as ongoing maintenance, not a one-time pass:

  • Database access uses prepared statements and esc_sql() for the rare identifier that can't be parameterized; output is escaped at the boundary (esc_html, esc_attr, esc_url).
  • Cross-boundary requires are file_exists()-guarded, so a partial install degrades a feature instead of fataling.
  • The newer code is typed and namespaced, which removes a whole class of type-confusion bugs.
  • Fixes ship like any other change — a version bump and a release — so a hardening update reaches sites through the normal updater.
💡 Web dev tip: keep your own stack on supported versions

A framework can only be as secure as the platform under it. Run a currently supported PHP version (each major line gets security fixes for a limited window) and keep WordPress current — most "plugin" vulnerabilities are really unpatched platforms underneath. The PHP supported-versions schedule