Lazy Syntax Highlighter v1.3 · WP 7.1
Server-side rendered

Fast, modern
syntax highlighting
for WordPress.

Every block is highlighted on the server. Your pages ship zero highlighter JavaScript — no render blocking, no flash of unstyled code, no 200 KB bundle.

// highlighted on the server — no frontend JSadd_filter( 'the_content', 'lsh_render' );function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks, 'auto' );}
0 KB
Highlighter JS on the frontend
24
Built-in themes with Pro
~185
Languages highlighted server-side
01 / Themes

One snippet.
Every theme.

The same block rendered through the real plugin. Set one theme site-wide, or override it per block.

5 free · 19 more in Pro
Atom One Darkfree
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
GitHub Darkfree
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
Monokaifree
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
GitHub Lightfree
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
VS Lightfree
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
+19 themes

Nord, Dracula, Tokyo Night, Gruvbox, Night Owl, Solarized and eleven of VS Code’s own — every one included with Pro.

Show all 19 Pro themes Hide Pro themes
NordPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
DraculaPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
Tokyo NightPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
Solarized DarkPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
Solarized LightPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
GruvboxPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
Night OwlPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
Winter (light)Pro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
VS Code Dark ModernPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
VS Code Light ModernPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
VS Code MonokaiPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
VS Code AbyssPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
VS Code Kimbie DarkPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
VS Code RedPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
VS Code Quiet LightPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
VS Code Tomorrow Night BluePro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
VS Code Monokai DimmedPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
VS Code 2026 DarkPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
VS Code 2026 LightPro
function lsh_render( $html ) {    $blocks = parse_blocks( $html );    return lsh_highlight( $blocks );}
02 / Why it’s different

Built for people who
actually post code.

01 Fast by construction

Highlighting happens once, on the server. The browser downloads markup and a few hundred bytes of CSS — nothing else.

02 Actively maintained

Every new WordPress release is tested before it lands, so your code blocks keep working when other highlighter plugins stop shipping updates.

03 Readable on long code

Long snippets collapse to a fixed height behind a “show more” button, so a 200-line config file doesn’t swallow the article. Still zero front-end JavaScript.

Set a site-wide line threshold, or override it per block. The toggle is a CSS checkbox — it works with JavaScript off.

add_filter( 'the_content', 'lsh_render' );function lsh_render( $html ) {    if ( ! str_contains( $html, 'wp-block-code' ) ) {        return $html;    }    $blocks = parse_blocks( $html );    foreach ( $blocks as $block ) {        if ( 'core/code' !== $block['blockName'] ) {            continue;        }        $code  = wp_strip_all_tags( $block['innerHTML'] );        $lang  = lsh_detect_language( $code );        $html  = str_replace(            $block['innerHTML'],            lsh_highlight( $code, $lang ),            $html        );    }    return $html;}
03 / Free vs Pro

What you get.

Feature Free Everything in Free, and Pro:
Server-side highlighting, ~185 languages, render cacheIncludedIncluded
Enlighter & core Code-block compatibility (render-time, no database writes)IncludedIncluded
Built-in themes55
Extra theme packNot included19 (24 total)
Header bar: None, HeadlightsIncludedIncluded
Header bar: Headlights (muted), Language label, Language pillNot includedIncluded
Typography, corners, padding, line numbers, line hover, copy buttonIncludedIncluded
Folding, inline highlighting, live editor highlighting, “Detect from code”IncludedIncluded
“See more” / expand for long blocks (site-wide default + per-block)Not includedIncluded
Site-wide default languageNot includedIncluded
Per-post default languageNot includedIncluded
wp lsh cache — warm / clear the render cacheIncludedIncluded
wp lsh migrate — permanent Enlighter conversion, with rollbackNot includedIncluded
Supportwordpress.org forumPriority email
04 / Pricing

Support this plugin.

Your subscription is what keeps it maintained — and it unlocks the extra themes, header styles, long-code handling and the WP-CLI Enlighter migration.

Single site
$9.99
per year · 1 site Get Pro
20 sites
$74.99
per year · up to 20 sites Get Pro

Yearly subscription, cancel any time. Renewal, expiry behaviour and the refund window follow the Freemius configuration — verify against checkout before publishing.

05 / FAQ

Before you buy.

What happens when my subscription expires?

Your code blocks keep working — nothing breaks, no content is lost. Pro-only features (extra themes, “see more”, WP-CLI conversion, default languages) stop applying until you renew.

Can I use my license on a staging or dev copy?

Yes. Staging, local and dev copies of a licensed site don’t count against your site limit.

Is there a setup fee, and do you offer refunds?

No setup fee. 7-day refund window, no questions asked.

Will the free version keep being maintained?

Yes. The free plugin is the engine Pro is built on — every fix and language improvement lands there first.

What if I uninstall the plugin?

Uninstalling converts every block back to a standard WordPress code block. No shortcode residue, no broken markup left behind in your posts.

Migrating from Enlighter?

One WP-CLI command converts every block on the site. The docs cover flags, dry runs and rollback.

Read the migration docs