Ellipsis in WordPress

The Ellipsis in WordPress: Why Beats ... Every Time

If you’ve spent any time developing for WordPress, you’ve probably encountered this seemingly trivial question: should you use three dots (...) or the proper ellipsis character () in your user-facing strings?

It might look like a minor stylistic choice, but in the WordPress ecosystem, this decision has real implications for code quality, localization, and professional polish. The WordPress core team has made their position clear—and here’s why you should follow their lead.


The Problem with Three Dots

Three periods might be the quickest thing to type, but they’re a typographic compromise. They’re the plain-text fallback, not the real thing.

WordPress does have a built-in function called wptexturize() that automatically converts three periods into a proper ellipsis in post content. However, you should never rely on this for translatable strings. Here’s why:

  • Inconsistent application: wptexturize() isn’t guaranteed to run in every context—JavaScript strings, HTML attributes, or certain admin screens may bypass it entirely.
  • Unpredictable results: What works in one context might break in another, leading to visual inconsistencies across your plugin or theme.

The WordPress Core Standard

The WordPress core team has been systematically replacing three dots with proper ellipses for years.

In Changeset 24207 (May 2013), core contributor SergeyBiryukov made a sweeping update across multiple files with the message: “Use ellipsis instead of three dots”. This changeset touched 16 different files, removing instances of ... from translatable strings throughout the admin.

Then came Changeset 33939 (September 2015), with the explicit message: “Round 2 of: We should use ellipses … / … instead of three dots/periods … e.g Loading… not Loading…”.

The message is clear: WordPress core developers actively prefer the proper ellipsis character.


The Best Practice: Use in Translatable Strings

For WordPress localization (l10n), the recommended approach is to use the actual ellipsis character directly in your translatable strings:

// ✅ Recommended
__( 'Loading…', 'my-text-domain' );
__( 'Continue reading…', 'my-text-domain' );

// ❌ Avoid
__( 'Loading...', 'my-text-domain' );
__( 'Continue reading...', 'my-text-domain' );

Why This Matters for Localization

1. Translators need full control

Different languages have different conventions for ellipses. Some languages use different characters, some add spaces, and some have specific rules about when and how to use them. By including the ellipsis as part of the translatable string, you give translators complete control over how it appears in their language.

2. Context is everything

An ellipsis on a button (“Save As…”) serves a different purpose than one indicating truncated text (“Read more…”). Keeping the ellipsis with its specific string allows translators to handle these nuances appropriately.

3. Avoids fragmented strings

Hard-coding punctuation outside of translatable strings can lead to awkward phrasing in other languages where word order differs.


vs … vs …

You have three options for representing an ellipsis:

OptionExampleBest Used For
Unicode characterTranslatable strings (recommended)
HTML entity (named)…HTML templates where character encoding might be unclear
HTML entity (numeric)…RSS feeds or contexts where named entities may break

For translatable strings, the actual Unicode character is the clear winner. It’s simple for translators to see and work with, and it aligns with WordPress core practices.


What About Escaping?

A common concern is whether esc_html() or similar escaping functions will handle the ellipsis character correctly.

Good news: esc_html() passes the ellipsis character through unchanged because it’s not a character that needs escaping for HTML. It’s completely safe.

However, if you use the HTML entity … inside a translatable string and then apply esc_html(), you might end up with literal … displayed to users if the string is double-escaped or used in certain contexts.


Summary: The Bottom Line

PracticeVerdict
__( 'Loading...' )❌ Avoid—three dots are a typographic compromise
__( 'Loading…' )⚠️ Risky—may break with escaping or in certain contexts
__( 'Loading…' )Best practice—clean, translatable, and core-approved

References for Further Reading


Final Word

Using the proper ellipsis character in your WordPress translatable strings isn’t just about looking professional—it’s about following core conventions, respecting translators, and writing more robust code.

The WordPress core team has done the heavy lifting of standardizing this practice. All that’s left is for you to adopt it.

Next time you type ... in a translatable string, stop and use instead. Your users—and your translators—will thank you.


Have thoughts on this? Drop a comment below or reach out on Twitter. And if you found this helpful, consider sharing it with your fellow WordPress developers.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *