WP-GeSHi-Highlight — mobile-friendly syntax highlighter for 257 languages


Live demo

• Highlights:

  • Support for 257 languages.
  • Mobile-friendly: does not execute JavaScript. This saves a lot of bandwidth and battery compared to JavaScript-based solutions.
  • Easy to use.
  • Near-zero additional load on the backend. Especially in combination with a caching solution this does not affect your page load time at all.
  • Line numbering (only if you want to). No vertical displacements between code line and line number. Numbers are not copied in most browsers upon copy-to-clipboard.
  • The default style was tested with more than 20 themes, including Twenty Ten to Fifteen.
  • If you like to tweak the default style: you can provide your own CSS file. Styles are highly & easily configurable.
  • Per-block styles: each code block on a single page can be styled on its own (if that is something you would liked to do).
  • Clean, small and valid HTML output.
  • Well-documented source code. Ues modern WordPress API calls.
  • I have maintained this plugin for several years and I plan to continue to provide support.
  • Based on GeSHi, a reliable and well-established PHP highlighting engine, used by popular community forum applications such as phpBB or wiki applications such as Dokuwiki or MediaWiki.

WP-GeSHi-Highlight works as a drop-in replacement for WP-Syntax, which does not seem to be maintained anymore (as of 2015). Make the switch, it should just work (let me know how it went)!

• Usage:

Use the text (raw) editor. Do not use the visual post editor. Switching between both can corrupt the contents of your code blocks. WordPress 5 users: use the classical editor plugin to access the text (raw) editor.

In the text editor insert code blocks as pre blocks, and use the lang argument to define the language of the code snippet:

<pre lang="languagestring">

A short example for the bash language:

<pre lang="bash">
    $ dd if=/dev/zero of=image.ext3 bs=1M count=10000 oflag=append conv=notrunc

This is all that needs to be done. Publish/preview, and look at the outcome.

Be sure to also check out the reference documentation for all available options. You can find it on the plugin’s website. Note that more usage examples can be found on the demo website.

• Issues:

Many websites have used this plugin for years, and it seems to serve its purpose well. Most issues so far were style-related. If you find an issue please let me know: drop a mail or leave a comment.

• Theme compatibility of the default style sheet:

The default style sheet was tested with recent versions of all official themes (Twenty Ten to Twenty Fifteen), and with a large range of non-official themes such as Vantage, Customizr, ColorWay, Zerif Lite, Responsive, Storefront, Virtue, evolve, Make, Sparkling, Spacious, Enigma, Sydney, Point, Interface, SinglePage.

Certain themes might define styles with a high specificity that negatively affect the visual code block appearance. It is difficult to impossible to anticipate all these cases in advance, so I expect this to happen in rare cases (the past has proven that these things happen). So, I need you to look out for these situations, and please report them!


  1. Upload the wp-geshi-highlight directory to the /wp-content/plugins directory.
  2. Activate the plugin through the plugins menu in WordPress.
  3. Use it.


Please have a look at the plugin’s website.




WP-GeSHi-Highlight — mobile-friendly syntax highlighter for 257 languages はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。



1.3.4 (2018-12-26)

  • Update GeSHi to the current development version of the release. This improves support for the SQL and MySQL languages and enhances PHP 7 compatibility.

1.3.3 (2018-05-02)

  • Address count()-related warnings on PHP 7 (thanks to dmorlock for reporting).

1.3.2 (2018-04-23)

  • Address ‘A non-numeric value encountered’ warning on PHP 7′ (thanks to John and Sven for reporting).
  • Fix a bug when using custom CSS files (thanks to Dan Bader for reporting).

1.3.1 (2017-10-03)

  • Update GeSHi to This is a major language support update. With that, WP-GeSHI-Highlight now newly supports or has improved support for Swift, Julia, biblatex, Kotlin, Lua, Ceylon, T-SQL, Haskell, AutoIt, Windows batch, SASS, LLVM IR, and others.

1.3.0 (2015-06-18)

  • Enhance compatibility of the default stylesheet with a large range of themes by increasing the specificity of certain CSS selectors and by adding more style directives. This ensures a better out-of-the-box experience. Thanks to Pascal Krause for reporting an incompatilibity with Twenty Ten.

1.2.4 (2015-06-17)

  • Increase compatibility with CDNs: fix double slash appearing in CSS file URL.
  • Remove redundant call to wp_register_style().
  • Change style sheet ID prefix, add newline characters to GeSHi CSS code output.
  • Improve code documentation and readability.

1.2.3 (2015-01-12)

  • Update GeSHi to (language file updates).

1.2.2 (2014-05-26)

  • Improve default CSS (add box-shadow:none to pre block, override external setting).

1.2.1 (2014-05-21)

  • Use plugin_dir_path/url() instead of obsolete WP_PLUGIN_DIR/URL constants (improve compatibility with HTTPS-driven websites).
  • Remove obsolete screenshot from release.
  • Minor code cleanup.

1.2.0 (2014-04-16)

  • Update GeSHi to git state of 2014-04-16 (tons of language updates).
  • Largely improve default style, for compatibility with modern browsers.

1.1.0 (2013-06-22)

  • Adjust default style for compatibility with Twentythirteen theme.
  • Remove GeSHi’s hard-coded font-size and line-height code styles.
  • Reduce box shadow and border radius in default style.
  • Slightly increase top and bottom padding in default style.

1.0.8 (2013-01-17)

  • Improve default stylesheet: make use of CSS3 box shadows, several tweaks.
  • If the code block style file is found in the theme style directory, it now has priority over the one in the plugin directory.
  • Update GeSHi to (numerous language file updates).
  • Include GeSHi language file for nginx configuration files (taken from GeSHi SVN revision r2572, to be released with
  • Use wp_enqueue_style method for style sheet inclusion.
  • Deactivate GeSHi economic mode when printing style sheet.
  • Do not print credits to HTML source anymore.

1.0.7 (2012-05-12)

  • Fix collision with other plugins including their own version of GeSHi (thanks to Bas for reporting).

1.0.6 (2012-05-12)

  • Fix line-spacing bug when displaying code blocks with different line numbering settings on the same page (thanks to Bas ten Berge for reporting).

1.0.5 (2011-02-27)

  • Update GeSHi to (“Some minor parser tweaks and fixes to existing language files. It adds 15 more languages.”).

1.0.4 (2011-01-12)

  • Optimize: now, CSS code is only printed once if the same language is used for multiple code blocks on the same page.
  • Minor code changes.

1.0.3 (2011-01-06)

  • Fix: comments are not always showing up (thanks to Uli for reporting).

1.0.2 (2011-01-04)

  • Minor code changes.
  • Remove beta tag.

1.0.1-beta (2010-12-18)

  • Fix: highlight in comments not always showing up.

1.0.0-beta (2010-11-22)

  • Initial release.