How WordPress Processes Post Content
WordPress processes text entered in the Write Post Panel multiple times before the text is finally displayed on a web page within your WordPress blog. The processing of the text filters out the unwanted code and conforms the text to a form that the browser can interpret. Without attention to detail and familiarity with WordPress's post content filtering, this can cause unwanted changes.
The majority of the conversion and filters are found in the onlyincludecodewp-includes/formatting.php/code/onlyinclude
div class=template-description style=padding: 0 1.5em; border: 1px solid #eeeeee; background-color: #f9f9f9
Link to the source code on http://core.trac.wordpress.org/browser/.
- (option) path to codetag/code (version) or codetrunk/code. This option is only used for a new function.br /Default: codetrunk/code -- trunk is the latest bleeding edge development version of WordPress.
Link to the stable version: pre检查到模板循环：模板:Trac/pre
Link to trunk: pre检查到模板循环：模板:Trac/pre
Some typical problems some users have with these filtering and processing functions are:
- Empty paragraphs, closing span tags, and line break (BR) elements are removed upon saving.
- Classes are removed from elements.
- DIV elements are converted to P elements.
The following is step-by-step list of how WordPress processes post content text before the final version is displayed.
TinyMCE is the editor used by WordPress, known as the Rich Text Editor. Not all WordPress bloggers use it, but if you do, it will change various codes upon saving an entry to prepare it for publishing.
wpautop() WordPress Function
It puts in line breaks, paragraph tags, opens and closes tags that aren't opened and closed, and cleans up duplicate HTML tags.
Texturize (wptexturize()) is a text filter enabled by default that modifies posted text or comments to present a more readable and visually attractive output.
While it creates aesthetically pleasant text, it might create difficulties when posting code examples in a programming language. In such situations modification of the text is not desirable because it might create syntactically incorrect code.
A few examples include:
"quoted text" becomes “quoted text” 'quoted text' becomes ‘quoted text’ --- becomes — -- becomes – ... becomes … (c) becomes © (r) becomes ® (tm) becomes ™ '' becomes ” `` becomes “ president's becomes president’s presidents' becomes presidents’ 12' becomes 12′ 12" becomes 12″ 2x4 becomes 2×4
convert_smilies() function converts combinations of characters into smilies or emoticons within the post, page, and comment text. For example, if smilies are enabled, WordPress will recognize :D and turn it into a smiling face.
The key to making smilies work is to put a space before and after the keystroke combination. If placed up against the text, it will not convert.
If conversion of smilies is not desired, turn it off through the Settings > Writing panel.
formatting.php code file contains numerous functions which help publish character entities, accents, and non-English characters to a form recognizable by the web browser.
Generally, these work excellently, however, your browser may not recognize various language characters unless that language is activated in your web browser. See your browser's documentation for more information on adding language character recognition to your browser.
Methods to Prevent Processing
There are a variety of Plugins to change the filtering process WordPress uses by default. It is highly recommended that you do not change the core programming but use WordPress Plugins to change all or some of the content processing. See the WordPress Plugins Directory for various Plugins that change the post content filtering process.