Improve your web typography with:

  • Hyphenation — over 50 languages supported

  • Space control, including:

    • widow protection
    • gluing values to units
    • forced internal wrapping of long URLs & email addresses
  • Intelligent character replacement, including smart handling of:

    • quote marks
    • dashes
    • ellipses
    • trademarks, copyright & service marks
    • math symbols
    • fractions
    • ordinal suffixes
  • CSS hooks for styling:

    • ampersands,
    • uppercase words,
    • numbers,
    • initial quotes & guillemets.


  • wp-Typography "General" settings page.
  • wp-Typography "Hyphenation" settings page.
  • wp-Typography "Intelligent Character Replacement" settings page.
  • wp-Typography "Space Control" settings page.
  • wp-Typography "Add CSS Hooks" settings page.



wp‐Typography has the following requirements:

  • the host server must run PHP 5.6.0 or later
  • your installation of PHP must include the mbstring extension (most do)
  • text must be encoded UTF‐8


FAQs are maintained on the wp-Typography website.

Two questions come up so frequently, we will republish their answers here:

Installation Instructions


wp‐Typography has the following requirements:

  • the host server must run PHP 5.6.0 or later
  • your installation of PHP must include the mbstring extension (most do)
  • text must be encoded UTF‐8
Will this plu­gin slow my page load­ing times?

Yes. Use WP Super Cache.

This plugin breaks post title links. What gives?

More likely than not, your WordPress theme is using an improper function to set the title attribute of your heading’s link. It is probably using the the_title() function, which delivers the post title after filtering. It should be using the_title_attribute() which delivers the post title before filtering. Change out this function throughout your theme when it is used inside of an HTML tag, and the problem should go away.

If you are uncomfortable editing your theme’s code, you may alternatively go to the wp-Typography settings page in your admin panel and add h1 and h2 to the “Do not process the content of these HTML elements:” field. This will disable typographic processing within improperly designed page title links and page titles.

Remember, many more FAQs are are addressed the wp-Typography website.

I’m using Advanced Custom Fields and don’t want my custom fields to be hyphenated! How can I disable that behavior?

Please install the wp-Typography Disable ACF Integration plugin by @sarukku.


Great plugin

You may meet some CSS problems when activating this plugin but support is great and the plugin is well conceived to solve eventual problems. If you consider that typography is important, this is the only plugin valuable – and works great in french.

Great plugin for those who care about typography

Loving typography, I truly appreciate this one. Person who made it must love the rules of typorgaphy a lot, and know that by following them, a pleasurable reading experience for the visitor is guaranteed 🙂
Plugin has great range of features and even works with Advanced Custom Fields!


I rarely leave reviews, mainly because of laziness, but this plugin is absolutely amazing, solved the “widows” problem easily, highly configurable…

A huge thank you for your work! Will certainly suggest this to every peer!

Essential plugin. Outstanding support

An essential plugin if you care about things like hyphenation. So long as you use it in conjunction with a caching plugin it’s incredibly useful.

I had a problem (which turned out to be my fault) the developer (pepe) was amazingly quick in replying and helping me fix it.

Read all 29 reviews

Contributors & Developers

“wp-Typography” is open source software. The following people have contributed to this plugin.


“wp-Typography” has been translated into 4 locales. Thank you to the translators for their contributions.

Translate “wp-Typography” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


5.1.3 – December 03, 2017

  • Change: Updated to use version 5.2.3 of the composer package mundschenk-at/php-typography.
  • Bugfix: Sometimes, the French double quotes style generated spurious ».
  • Bugfix: Locale-based language files where not properly matched (primarily affecting en-US and en-GB, props @strasis).

5.1.2 – November 25, 2017

  • Change: Updated to use version 5.2.2 of the composer package mundschenk-at/php-typography.
  • Bugfix: Removed some ambiguous diacritics replacements from the German language file.
  • Bugfix: Prevent of accidental loading of obsolete composer ClassLoader implementations from other plugins.

5.1.1 – November 16, 2017

  • Bugfix: Shortcodes in the new WordPress 4.8 text widget work again.

5.1.0 – November 14, 2017

  • Feature: HTML5 parser performance improved by 20 percent.
  • Feature: New hyphenation language “Swiss-German (Traditional)” added.
  • Feature: New filter hook typo_narrow_no_break_space to enable the NARROW NO-BREAK SPACE.
  • Change: Refactored plugin internals. This means that
    • caching should be more friendly to shared hosting environments,
    • options are stored as a single array now (i.e. fewer rows in the options table), and
    • filters and actions are only added when actually needed.
  • Change: Updated to use version 5.2.1 of the composer package mundschenk-at/php-typography.
  • Bugfix: Narrow spaces are honored during de-widowing.

5.0.4 – September 09, 2017

  • Bugfix: Ensure proper typing for cached language plugin lists.

5.0.3 – September 03, 2017

  • Bugfix: Lower database write load by reducing option updates (props @jerzyk).

5.0.2 – September 02, 2017

  • Bugfix: “Clear Cache” and “Restore Defaults” admin notices are now shown again.
  • Bugfix: Object caching errors don’t crash the site anymore.

5.0.1 – August 28, 2017

  • Bugfix: Fatal error on PHP 5.6.x (caused by using __METHOD__ as a variable function) fixed (mundschenk-at/php-typography 5.0.2).

5.0.0 – August 27, 2017

  • Feature: Proper multilingual support (automatic language switching). Tested with
  • Feature: Language-specific default settings.
  • Feature: Several new hooks added (including typo_settings to directly filter the settings).
  • Change: Updated to use version 5.0.1 of the new standalone composer package mundschenk-at/php-typography.
  • Change: Minimum PHP version increased to 5.6.0
  • Change: Updated list of valid top-level domains.
  • Bugfix: French punctuation spacing after links (and other inline tags) fixed.
  • Bugfix: Lone ampersands are treated as single-character words.
  • Bugfix: Hyphenated words are properly de-widowed.

4.2.2 – June 18, 2017

  • Bugfix: Properly clear cache on upgrade.
  • Change: Various internal performance improvements.

4.2.1 – June 9, 2017

  • Bugfix: Prevent crash on PHP 5.x when building the hyphenation trie.

4.2.0 – June 8, 2017

  • Feature: Prevent line-breaks in numbered abbreviations (e.g. ISO 9001).
  • Feature: Added new hook typo_php_typography_caching_enabled to disable object caching for very resource-starved environments.
  • Change: Core API refactored and minimum PHP version increased to 5.4.0.
  • Change: Updated hyphenation patterns:
    • German
    • German (Traditional)
    • Latin
    • Latin (Liturgical)
  • Change: Updated list of valid top-level domains.