Formatting component

The Formatting component primarily consists of formatting.php in wp-includes. This file contains various escaping and sanitization functions, and other functions for both security and formatting text. This includes two infamous functions with storied WordPress histories, wpautop() and wptexturize(). Formatting also includes kses.php, WordPress’s HTML security filter.

Changes to the Formatting functions generally require extensive unit testing and a consensus of lead developers.  This tends to happen with deliberation across two or more versions.  The easiest way to contribute to this component is to write bug reports or unit tests for existing code.  Remember, all security matters should be reported according to the Security FAQ and are not part of the public Formatting information.

Projects for the 4.4 milestone will focus on supporting the Shortcode API Roadmap, which is deeply entwined with almost every facet of the Formatting functions. Large changes and many bug fixes are needed, and in some ways will also be made possible by the Shortcode plans.

Subcomponents: Emoji, Shortcodes, and Charset.

177 open tickets in the Formatting component

177 open tickets defect (bug) enhancement feature request
5.3 2 0 0
Awaiting Review 110 44 1
Future Release 13 6 1

177 open tickets. Last 7 days: -1 ticket

18 tickets that have no replies

View list on Trac

  • #39188  Wrapping paragraph tags around 'Read More' link stripped out of custom post type
  • #39190  RSS feed not valid: U+001A or 0x1a
  • #39636  Smilies not converted when directly followed by punctuation marks
  • #39674  Special characters are encoded in the database, for site settings options administration
  • #39724  Defining custom validation callbacks for tag/attribute values in wp_kses()
  • #39847  force_balance_tags not properly balancing < with <strong> and </strong> ui
  • #40045  HTML code entered using "Text" mode gets garbled
  • #40552  Calling wp_parse_args() early, with $args as empty string, may cause fatal error
  • #40569  next_post_link parameters $format and $link, have default values that produce awkward to use output
  • #42058  Unit test for _autop_newline_preservation_helper()
  • #42182  esc_js must escape U+2028 and U+2029
  • #42410  wpautop() breaks HTML (missing start tag p)
  • #42748  wpautop adds an extra <p>
  • #43155  Formatting bug with ampasands – WooCommerce Layered Nav
  • #43156  _walk_bookmarks(): please add the link id as HTML id attribute.
  • #43205  Allow filtering the list of characters to be replaced by wptexturize
  • #43785  wptexturize fails to skip JavaScript if code contains <
  • #43810  Aphostrophe issue

2 tickets slated for 5.3

View list in Trac

  • #2691  HTML comments in posts aren't handled properly.
  • #44793  remove_accents() doesnt escape all versions of "i"

177 open tickets

Open bugs: 125. View list on Trac

Help maintain this component

Component maintainers:

Many contributors help maintain one or more components. These maintainers are vital to keeping WordPress development running as smoothly as possible. They triage new tickets, look after existing ones, spearhead or mentor tasks, pitch new ideas, curate roadmaps, and provide feedback to other contributors. Longtime maintainers with a deep understanding of particular areas of core are always seeking to mentor others to impart their knowledge.

Want to help? Start following this component! Adjust your notifications here. Feel free to dig into any ticket.

Contributors following this component: