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.

151 open tickets in the Formatting component

151 open tickets defect (bug) enhancement feature request
52 11 0
5.5 2 1 0
Awaiting Review 36 21 2
Future Release 21 5 0

151 open tickets. Last 7 days: +0 tickets

28 tickets that have no replies

View list on Trac

  • #33553  Bug with Linebreak before figcaption, fixed and then revert to make a fix elsewhere javascript
  • #34039  shortcode_parse_atts() no longer parses embedded html fragments
  • #36124  Format: Aside next to an embedded video, removes player and only displays URL
  • #36397  add_query_arg doesn't work with numbered html entities
  • #36712  Paragraph tags removed from div elements if script tag is present
  • #37077  Replacing one variable handler for another to ensure proper conditional check occurs 100%.
  • #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
  • #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
  • #46846  Tight comparisons and use of Yoda conditions are not consistent coding-standards
  • #47557  Sanitize Email Suggestion
  • #47973  Invalid HTML output from image_caption + wpautop combination coding-standards
  • #48873  CSS Selectors in style tags containing greater than signs are escaped
  • #49217  HTML error with the multi-level list in Classic Editor
  • #49492  wpautop inserted p tags inconsistently alter visual space

3 tickets slated for 5.5

View list in Trac

  • #47594  Add nbsp symbol codes to convert throught sanitize_title
  • #49464  wp_kses_hair and wp_kses_hair_parse regex is not allowing digits or underscores in attribute names
  • #49791  sanitize title should filter out the bullet • punctuation mark

151 open tickets

Open bugs: 111. 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: