Improve your web typography with:

  • Hyphenation — over 70 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.


wp – Typography is the best all around typesetting plug-in

Being a book publisher, I have to deal with a lot of typographic conventions in my designs. This plug-in is the only one that deals with a majority of options like hyphenation, white space, character replacements, widow and orphan control and many more features too long to list here. The developer is very responsive and has personally worked with me to solve some specific issues related to my WordPress installation. So far it has always been updated in a timely fashion to work with new versions of WordPress as they are released. Highly recommended.

Looks good but…

Almost every time (or often) I have to update the plugin I have a 504 error blocking my site. And after I have to wait for another update correcting this issue. Maybe a compatibility problem between plugins, but only with THIS plugin.

But v5.2.1 is perfect for me. That now deserves 5* 🙂

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!

Read all 31 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.2.2 – February 04, 2018

  • Bugfix: Superscripts were not displayed correctly in the settings page.
  • Bugfix: Standalone < and > characters (i.e. not part of an HTML tag) could vanish in some circumstances.
  • Bugfix: Re-activating the plugin no longer overwrites the settings with their defaults.

5.2.1 – January 11, 2018

  • Bugfix: Languages were not sorted correctly in the settings page.
  • Bugfix: Circular references in caches objects have been fixed.
  • Bugfix: Workaround for Divi theme crash, avoiding get_body_class().

5.2.0 – January 05, 2018

  • Feature: WordPress body classes (i.e. the result of get_body_class()) are now
    passed to the text processing methods. This means that you can exclude entire pages
    from wp-Typography’s processing based on the body classes generated by WordPress.
  • Feature: Support for WooCommerce page descriptions (via the filter hook woocommerce_format_content).
  • Feature: New hyphenation languages
    • Assamese,
    • Belarusian,
    • Bengali,
    • Church Slavonic,
    • Esperanto,
    • Friulan,
    • Gujarati,
    • Kannada,
    • Kurmanji,
    • Malayalam,
    • Norwegian (Bokmål)
    • Norwegian (Nynorsk)
    • Piedmontese,
    • Romansh,
    • Upper Sorbian.
  • Change: Updated to use version 6.1.0 of the composer package mundschenk-at/php-typography.
  • Bugfix: Numbers are treated like characters for the purpose of wrapping emails.
  • Bugfix: Better matching between hyphenation languages and WordPress locales.

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.