{"id":5633,"date":"2026-02-12T20:44:58","date_gmt":"2026-02-13T01:44:58","guid":{"rendered":"https:\/\/chubes.net\/?documentation=wordpress-formatting-api-functions"},"modified":"2026-03-13T03:28:26","modified_gmt":"2026-03-13T07:28:26","slug":"wordpress-formatting-api-functions","status":"publish","type":"documentation","link":"https:\/\/chubes.net\/docs\/wordpress-core\/formatting\/wordpress-formatting-api-functions\/","title":{"rendered":"WordPress Formatting API Functions"},"content":{"rendered":"<h2 class=\"wp-block-heading\">Escaping Functions<\/h2><p>Escaping functions make data safe for output in a specific context. <strong>Always escape on output.<\/strong><\/p><h3 class=\"wp-block-heading\">esc_html()<\/h3><p>Escapes a string for safe output in HTML content.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function esc_html( $text )<\/code><\/pre><\/div><p><strong>Escapes:<\/strong> <code>&amp;<\/code>, <code>&lt;<\/code>, <code>&gt;<\/code>, <code>&quot;<\/code>, <code>'<\/code><\/p><p><strong>Use case:<\/strong> Displaying user-generated text within HTML tags.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">echo &#039;&lt;p&gt;&#039; . esc_html( $user_bio ) . &#039;&lt;\/p&gt;&#039;;<\/code><\/pre><\/div><p><strong>Filter:<\/strong> <code>esc_html<\/code> &#8211; Applied to the escaped text.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">esc_attr()<\/h3><p>Escapes a string for safe output in an HTML attribute.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function esc_attr( $text )<\/code><\/pre><\/div><p><strong>Escapes:<\/strong> Same as <code>esc_html()<\/code> &#8211; <code>&amp;<\/code>, <code>&lt;<\/code>, <code>&gt;<\/code>, <code>&quot;<\/code>, <code>'<\/code><\/p><p><strong>Use case:<\/strong> Any HTML attribute value.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">echo &#039;&lt;input type=&quot;text&quot; value=&quot;&#039; . esc_attr( $value ) . &#039;&quot; name=&quot;&#039; . esc_attr( $name ) . &#039;&quot;&gt;&#039;;<\/code><\/pre><\/div><p><strong>Filter:<\/strong> <code>attribute_escape<\/code> &#8211; Applied to the escaped text.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">esc_url()<\/h3><p>Sanitizes and escapes a URL for safe output.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function esc_url( $url, $protocols = null, $_context = &#039;display&#039; )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$url<\/code> &#8211; The URL to escape<\/li><li><code>$protocols<\/code> &#8211; Allowed protocols (default: <code>wp_allowed_protocols()<\/code>)<\/li><li><code>$_context<\/code> &#8211; &#8216;display&#8217; (encodes <code>&amp;<\/code> and <code>'<\/code>) or &#8216;db&#8217; (raw)<\/li><\/ul><p><strong>Operations:<\/strong><\/p><ol class=\"wp-block-list\"><li>Strips invalid characters (<code>%0d<\/code>, <code>%0a<\/code> &#8211; CRLF injection)<\/li><li>Adds <code>http:\/\/<\/code> or <code>https:\/\/<\/code> if no scheme present<\/li><li>Validates against allowed protocols<\/li><li>Encodes brackets, ampersands, quotes for display<\/li><\/ol><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">echo &#039;&lt;a href=&quot;&#039; . esc_url( $link ) . &#039;&quot;&gt;Click here&lt;\/a&gt;&#039;;<\/code><\/pre><\/div><p><strong>Filter:<\/strong> <code>clean_url<\/code> &#8211; Applied with original URL and context.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">esc_url_raw() \/ sanitize_url()<\/h3><p>Sanitizes a URL for database storage or redirects (no display encoding).<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function esc_url_raw( $url, $protocols = null )\nfunction sanitize_url( $url, $protocols = null )<\/code><\/pre><\/div><p>These are equivalent &#8211; use for database storage, <code>wp_redirect()<\/code>, or API calls.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">update_post_meta( $id, &#039;external_link&#039;, esc_url_raw( $url ) );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">esc_js()<\/h3><p>Escapes a string for safe output in inline JavaScript.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function esc_js( $text )<\/code><\/pre><\/div><p><strong>Operations:<\/strong><\/p><ul class=\"wp-block-list\"><li>Escapes <code>&quot;<\/code>, <code>'<\/code>, <code>&lt;<\/code>, <code>&gt;<\/code>, <code>&amp;<\/code><\/li><li>Converts line breaks to <code>n<\/code><\/li><li>Adds slashes<\/li><\/ul><p><strong>Use case:<\/strong> Inline JS attributes (NOT for <code>&lt;script&gt;<\/code> blocks).<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">echo &#039;&lt;button onclick=&quot;alert(&#039;&#039; . esc_js( $message ) . &#039;&#039;)&quot;&gt;Click&lt;\/button&gt;&#039;;<\/code><\/pre><\/div><p><strong>Filter:<\/strong> <code>js_escape<\/code> &#8211; Applied to the escaped text.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">esc_textarea()<\/h3><p>Escapes a string for output inside a <code>&lt;textarea&gt;<\/code> element.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function esc_textarea( $text )<\/code><\/pre><\/div><p>Uses <code>htmlspecialchars()<\/code> with <code>ENT_QUOTES<\/code>. Preserves newlines.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">echo &#039;&lt;textarea&gt;&#039; . esc_textarea( $content ) . &#039;&lt;\/textarea&gt;&#039;;<\/code><\/pre><\/div><p><strong>Filter:<\/strong> <code>esc_textarea<\/code> &#8211; Applied to the escaped text.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">esc_xml()<\/h3><p>Escapes a string for safe output in XML content.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function esc_xml( $text )<\/code><\/pre><\/div><p><strong>Since:<\/strong> 5.5.0<\/p><p>Handles CDATA sections properly, converts HTML named entities to code points.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">echo &#039;&lt;item&gt;&lt;title&gt;&#039; . esc_xml( $title ) . &#039;&lt;\/title&gt;&lt;\/item&gt;&#039;;<\/code><\/pre><\/div><p><strong>Filter:<\/strong> <code>esc_xml<\/code> &#8211; Applied to the escaped text.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">tag_escape()<\/h3><p>Escapes an HTML tag name.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function tag_escape( $tag_name )<\/code><\/pre><\/div><p>Allows only alphanumeric, hyphens (for custom elements), underscores, and colons.<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Sanitization Functions<\/h2><p>Sanitization functions clean data for storage. <strong>Sanitize on input.<\/strong><\/p><h3 class=\"wp-block-heading\">sanitize_text_field()<\/h3><p>Sanitizes a string from user input for database storage.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function sanitize_text_field( $str )<\/code><\/pre><\/div><p><strong>Operations:<\/strong><\/p><ol class=\"wp-block-list\"><li>Checks for invalid UTF-8<\/li><li>Converts lone <code>&lt;<\/code> to entities<\/li><li>Strips ALL HTML tags<\/li><li>Removes line breaks, tabs, extra whitespace<\/li><li>Strips percent-encoded characters<\/li><\/ol><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$title = sanitize_text_field( $_POST[&#039;title&#039;] );<\/code><\/pre><\/div><p><strong>Filter:<\/strong> <code>sanitize_text_field<\/code> &#8211; Applied to sanitized string.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">sanitize_textarea_field()<\/h3><p>Like <code>sanitize_text_field()<\/code> but preserves newlines.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function sanitize_textarea_field( $str )<\/code><\/pre><\/div><p><strong>Since:<\/strong> 4.7.0<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$description = sanitize_textarea_field( $_POST[&#039;description&#039;] );<\/code><\/pre><\/div><p><strong>Filter:<\/strong> <code>sanitize_textarea_field<\/code> &#8211; Applied to sanitized string.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">sanitize_email()<\/h3><p>Strips out all characters not allowed in an email address.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function sanitize_email( $email )<\/code><\/pre><\/div><p>Validates local part, domain structure, and TLD. Returns empty string if invalid.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$email = sanitize_email( $_POST[&#039;email&#039;] );\nif ( empty( $email ) ) {\n    \/\/ Invalid email\n}<\/code><\/pre><\/div><p><strong>Filter:<\/strong> <code>sanitize_email<\/code> &#8211; Applied with email and context.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">sanitize_file_name()<\/h3><p>Sanitizes a filename for safe storage.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function sanitize_file_name( $filename )<\/code><\/pre><\/div><p><strong>Operations:<\/strong><\/p><ul class=\"wp-block-list\"><li>Removes accents<\/li><li>Removes special characters (<code>?<\/code>, <code>[<\/code>, <code>]<\/code>, <code>\/<\/code>, <code><\/code>, <code>=<\/code>, <code>&lt;<\/code>, <code>&gt;<\/code>, <code>:<\/code>, <code>;<\/code>, etc.)<\/li><li>Replaces spaces with dashes<\/li><li>Handles multiple extensions safely<\/li><li>Trims leading\/trailing periods, dashes, underscores<\/li><\/ul><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$safe_name = sanitize_file_name( $uploaded_file[&#039;name&#039;] );<\/code><\/pre><\/div><p><strong>Filters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>sanitize_file_name_chars<\/code> &#8211; Modify characters to remove<\/li><li><code>sanitize_file_name<\/code> &#8211; Applied to final filename<\/li><\/ul><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">sanitize_user()<\/h3><p>Sanitizes a username.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function sanitize_user( $username, $strict = false )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$strict = false<\/code> &#8211; Basic sanitization (strips tags, accents, HTML entities)<\/li><li><code>$strict = true<\/code> &#8211; Only allows alphanumeric, <code>_<\/code>, space, <code>.<\/code>, <code>-<\/code>, <code>@<\/code><\/li><\/ul><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$username = sanitize_user( $_POST[&#039;username&#039;], true );<\/code><\/pre><\/div><p><strong>Filter:<\/strong> <code>sanitize_user<\/code> &#8211; Applied with original and strict flag.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">sanitize_key()<\/h3><p>Sanitizes a string key (internal identifiers).<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function sanitize_key( $key )<\/code><\/pre><\/div><p>Lowercase, only allows <code>a-z<\/code>, <code>0-9<\/code>, <code>_<\/code>, <code>-<\/code>.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$meta_key = sanitize_key( $input );<\/code><\/pre><\/div><p><strong>Filter:<\/strong> <code>sanitize_key<\/code> &#8211; Applied to sanitized key.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">sanitize_title()<\/h3><p>Sanitizes a string into a URL-safe slug.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function sanitize_title( $title, $fallback_title = &#039;&#039;, $context = &#039;save&#039; )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$context = 'save'<\/code> &#8211; Runs through <code>remove_accents()<\/code> first<\/li><li><code>$context = 'query'<\/code> &#8211; For database queries (via <code>sanitize_title_for_query()<\/code>)<\/li><\/ul><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$slug = sanitize_title( &#039;Hello World!&#039; ); \/\/ &#039;hello-world&#039;<\/code><\/pre><\/div><p><strong>Filter:<\/strong> <code>sanitize_title<\/code> &#8211; Applied with raw title and context.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">sanitize_title_with_dashes()<\/h3><p>The workhorse behind <code>sanitize_title()<\/code>. Creates URL-safe slugs.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function sanitize_title_with_dashes( $title, $raw_title = &#039;&#039;, $context = &#039;display&#039; )<\/code><\/pre><\/div><p><strong>Operations:<\/strong><\/p><ul class=\"wp-block-list\"><li>Strips tags<\/li><li>Preserves escaped octets<\/li><li>Converts to lowercase<\/li><li>In &#8216;save&#8217; context: converts special spaces\/dashes to hyphens<\/li><li>Removes HTML entities<\/li><li>Only keeps <code>a-z<\/code>, <code>0-9<\/code>, <code>_<\/code>, <code>-<\/code>, spaces (converted to dashes)<\/li><\/ul><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">sanitize_html_class()<\/h3><p>Sanitizes an HTML class name.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function sanitize_html_class( $classname, $fallback = &#039;&#039; )<\/code><\/pre><\/div><p>Only allows <code>A-Z<\/code>, <code>a-z<\/code>, <code>0-9<\/code>, <code>_<\/code>, <code>-<\/code>.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">echo &#039;&lt;div class=&quot;&#039; . sanitize_html_class( $class ) . &#039;&quot;&gt;&#039;;<\/code><\/pre><\/div><p><strong>Filter:<\/strong> <code>sanitize_html_class<\/code> &#8211; Applied to sanitized class.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">sanitize_mime_type()<\/h3><p>Sanitizes a MIME type string.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function sanitize_mime_type( $mime_type )<\/code><\/pre><\/div><p>Only allows alphanumeric, <code>-<\/code>, <code>+<\/code>, <code>*<\/code>, <code>.<\/code>, <code>\/<\/code>.<\/p><p><strong>Filter:<\/strong> <code>sanitize_mime_type<\/code> &#8211; Applied to sanitized MIME type.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">sanitize_option()<\/h3><p>Sanitizes option values based on option name.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function sanitize_option( $option, $value )<\/code><\/pre><\/div><p>Handles WordPress core options with specific validation rules (email, URLs, integers, etc.).<\/p><p><strong>Filter:<\/strong> <code>sanitize_option_{$option}<\/code> &#8211; Per-option sanitization.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">sanitize_sql_orderby()<\/h3><p>Validates an SQL ORDER BY clause.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function sanitize_sql_orderby( $orderby )<\/code><\/pre><\/div><p>Returns <code>$orderby<\/code> if valid, <code>false<\/code> if invalid. Accepts column names with optional ASC\/DESC, or <code>RAND()<\/code>.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">sanitize_locale_name()<\/h3><p>Sanitizes a locale name.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function sanitize_locale_name( $locale_name )<\/code><\/pre><\/div><p><strong>Since:<\/strong> 6.2.1<\/p><p>Only allows <code>A-Z<\/code>, <code>a-z<\/code>, <code>0-9<\/code>, <code>_<\/code>, <code>-<\/code>.<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">KSES Functions<\/h2><h3 class=\"wp-block-heading\">wp_kses()<\/h3><p>The main KSES filtering function.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_kses( $content, $allowed_html, $allowed_protocols = array() )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$content<\/code> &#8211; HTML to filter (expects unslashed data)<\/li><li><code>$allowed_html<\/code> &#8211; Array of allowed elements\/attributes OR context string<\/li><li><code>$allowed_protocols<\/code> &#8211; Allowed URL protocols<\/li><\/ul><p><strong>Context strings:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>'post'<\/code> &#8211; Post content rules<\/li><li><code>'strip'<\/code> &#8211; Remove all HTML<\/li><li><code>'data'<\/code> &#8211; Basic HTML only<\/li><li><code>'entities'<\/code> &#8211; Return allowed entity names<\/li><\/ul><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ Using context\n$safe = wp_kses( $html, &#039;post&#039; );\n\n\/\/ Custom allowlist\n$safe = wp_kses( $html, array(\n    &#039;a&#039; =&gt; array( &#039;href&#039; =&gt; true, &#039;title&#039; =&gt; true ),\n    &#039;em&#039; =&gt; array(),\n    &#039;strong&#039; =&gt; array(),\n) );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_kses_post()<\/h3><p>Filters HTML using post content rules.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_kses_post( $data )<\/code><\/pre><\/div><p>Expects unslashed data. Shorthand for <code>wp_kses( $data, 'post' )<\/code>.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$safe_content = wp_kses_post( $_POST[&#039;content&#039;] );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_kses_post_deep()<\/h3><p>Recursively filters arrays of HTML content.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_kses_post_deep( $data )<\/code><\/pre><\/div><p><strong>Since:<\/strong> 4.4.2<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$safe_data = wp_kses_post_deep( $form_data );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_kses_data()<\/h3><p>Filters HTML using basic rules (unslashed data).<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_kses_data( $data )<\/code><\/pre><\/div><p>Uses <code>current_filter()<\/code> to determine context.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_filter_kses()<\/h3><p>Filters HTML using basic rules (slashed data).<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_filter_kses( $data )<\/code><\/pre><\/div><p>Expects slashed data, returns slashed data. Used in pre-save filters.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_filter_post_kses()<\/h3><p>Filters HTML using post rules (slashed data).<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_filter_post_kses( $data )<\/code><\/pre><\/div><p>Expects slashed data, returns slashed data. Used in <code>content_save_pre<\/code> filter.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_filter_nohtml_kses()<\/h3><p>Strips ALL HTML (slashed data).<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_filter_nohtml_kses( $data )<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_kses_allowed_html()<\/h3><p>Returns allowed HTML elements for a context.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_kses_allowed_html( $context = &#039;&#039; )<\/code><\/pre><\/div><p><strong>Contexts:<\/strong> <code>'post'<\/code>, <code>'strip'<\/code>, <code>'data'<\/code>, <code>'entities'<\/code>, <code>'user_description'<\/code>, <code>'pre_user_description'<\/code><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$allowed = wp_kses_allowed_html( &#039;post&#039; );\n\/\/ Returns array of elements with their allowed attributes<\/code><\/pre><\/div><p><strong>Filter:<\/strong> <code>wp_kses_allowed_html<\/code> &#8211; Modify allowed elements per context.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_kses_attr()<\/h3><p>Filters a single element&#8217;s attributes.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_kses_attr( $element, $attr, $allowed_html, $allowed_protocols )<\/code><\/pre><\/div><p>Validates each attribute against the allowlist.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_kses_hair()<\/h3><p>Parses an attribute string into an array.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_kses_hair( $attr, $allowed_protocols )<\/code><\/pre><\/div><p>Returns array with <code>name<\/code>, <code>value<\/code>, <code>whole<\/code>, <code>vless<\/code> for each attribute.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_kses_bad_protocol()<\/h3><p>Validates a URL against allowed protocols.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_kses_bad_protocol( $content, $allowed_protocols )<\/code><\/pre><\/div><p>Removes disallowed protocols from URLs.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_kses_uri_attributes()<\/h3><p>Returns list of attributes that contain URLs.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_kses_uri_attributes()<\/code><\/pre><\/div><p>Returns: <code>action<\/code>, <code>archive<\/code>, <code>background<\/code>, <code>cite<\/code>, <code>classid<\/code>, <code>codebase<\/code>, <code>data<\/code>, <code>formaction<\/code>, <code>href<\/code>, <code>icon<\/code>, <code>longdesc<\/code>, <code>manifest<\/code>, <code>poster<\/code>, <code>profile<\/code>, <code>src<\/code>, <code>usemap<\/code>, <code>xmlns<\/code><\/p><p><strong>Filter:<\/strong> <code>wp_kses_uri_attributes<\/code> &#8211; Add custom data-* attributes.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">safecss_filter_attr()<\/h3><p>Filters inline CSS style attributes.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function safecss_filter_attr( $css, $deprecated = &#039;&#039; )<\/code><\/pre><\/div><p>Removes disallowed CSS properties and validates values.<\/p><p><strong>Filter:<\/strong> <code>safe_style_css<\/code> &#8211; Modify allowed CSS properties.<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Text Formatting Functions<\/h2><h3 class=\"wp-block-heading\">wpautop()<\/h3><p>Converts double line breaks to paragraphs.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wpautop( $text, $br = true )<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>$text<\/code> &#8211; Text to convert<\/li><li><code>$br<\/code> &#8211; Convert remaining single breaks to <code>&lt;br \/&gt;<\/code> (default: true)<\/li><\/ul><p><strong>Preserves content in:<\/strong> <code>&lt;pre&gt;<\/code>, <code>&lt;script&gt;<\/code>, <code>&lt;style&gt;<\/code>, <code>&lt;svg&gt;<\/code>, <code>&lt;math&gt;<\/code><\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wptexturize()<\/h3><p>Converts plain text to typographically correct entities.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wptexturize( $text, $reset = false )<\/code><\/pre><\/div><p><strong>Conversions:<\/strong><\/p><ul class=\"wp-block-list\"><li>Smart quotes (curly)<\/li><li>Apostrophes<\/li><li>Dashes (en\/em)<\/li><li>Ellipsis<\/li><li>Trademark symbol<\/li><li>Multiplication sign<\/li><\/ul><p><strong>Skips:<\/strong> <code>&lt;pre&gt;<\/code>, <code>&lt;code&gt;<\/code>, <code>&lt;kbd&gt;<\/code>, <code>&lt;style&gt;<\/code>, <code>&lt;script&gt;<\/code>, <code>&lt;tt&gt;<\/code><\/p><p><strong>Filters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>run_wptexturize<\/code> &#8211; Return false to disable<\/li><li><code>no_texturize_tags<\/code> &#8211; HTML elements to skip<\/li><li><code>no_texturize_shortcodes<\/code> &#8211; Shortcodes to skip<\/li><\/ul><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">shortcode_unautop()<\/h3><p>Prevents shortcodes from being wrapped in <code>&lt;p&gt;<\/code> tags.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function shortcode_unautop( $text )<\/code><\/pre><\/div><p>Applied after <code>wpautop()<\/code> to fix standalone shortcodes.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_strip_all_tags()<\/h3><p>Strips ALL HTML tags, including script\/style contents.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_strip_all_tags( $text, $remove_breaks = false )<\/code><\/pre><\/div><p><strong>Difference from <code>strip_tags()<\/code>:<\/strong> Also removes content inside <code>&lt;script&gt;<\/code> and <code>&lt;style&gt;<\/code>.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$text = wp_strip_all_tags( $html ); \/\/ Tags gone, content preserved\n$text = wp_strip_all_tags( $html, true ); \/\/ Also normalizes whitespace<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">convert_chars()<\/h3><p>Converts lone <code>&amp;<\/code> characters to <code>&amp;#038;<\/code>.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function convert_chars( $content, $deprecated = &#039;&#039; )<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">convert_smilies()<\/h3><p>Converts text smileys to image smileys.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function convert_smilies( $text )<\/code><\/pre><\/div><p>Only runs if <code>use_smilies<\/code> option is enabled.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">make_clickable()<\/h3><p>Converts plain text URLs and emails to links.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function make_clickable( $text )<\/code><\/pre><\/div><p>Handles <code>http:\/\/<\/code>, <code>https:\/\/<\/code>, <code>ftp:\/\/<\/code>, <code>www.<\/code>, <code>ftp.<\/code>, and email addresses.<\/p><p><strong>Filters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>make_clickable_rel<\/code> &#8211; Modify rel attribute on generated links<\/li><\/ul><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">force_balance_tags()<\/h3><p>Balances HTML tags (closes unclosed tags).<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function force_balance_tags( $text )<\/code><\/pre><\/div><p>Handles self-closing tags, nested elements, and custom elements.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_rel_nofollow()<\/h3><p>Adds <code>rel=&quot;nofollow&quot;<\/code> to all links.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_rel_nofollow( $text )<\/code><\/pre><\/div><p>Pre-save filter function.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_rel_ugc()<\/h3><p>Adds <code>rel=&quot;nofollow ugc&quot;<\/code> to all links.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_rel_ugc( $text )<\/code><\/pre><\/div><p><strong>Since:<\/strong> 5.3.0 &#8211; For user-generated content.<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Utility Functions<\/h2><h3 class=\"wp-block-heading\">remove_accents()<\/h3><p>Converts accented characters to ASCII equivalents.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function remove_accents( $text, $locale = &#039;&#039; )<\/code><\/pre><\/div><p>Handles Latin, Vietnamese, German, Danish characters.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">is_email()<\/h3><p>Validates an email address.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function is_email( $email, $deprecated = false )<\/code><\/pre><\/div><p>Returns email if valid, <code>false<\/code> if invalid. NOT RFC compliant (simpler validation).<\/p><p><strong>Filter:<\/strong> <code>is_email<\/code> &#8211; Override validation with context.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_trim_words()<\/h3><p>Trims text to a specified word count.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_trim_words( $text, $num_words = 55, $more = null )<\/code><\/pre><\/div><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$excerpt = wp_trim_words( $content, 20, &#039;...&#039; );<\/code><\/pre><\/div><p><strong>Filter:<\/strong> <code>wp_trim_words<\/code> &#8211; Applied to trimmed text.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_trim_excerpt()<\/h3><p>Generates an excerpt from content.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_trim_excerpt( $text = &#039;&#039;, $post = null )<\/code><\/pre><\/div><p>Strips shortcodes, blocks, footnotes. Applies 55-word limit.<\/p><p><strong>Filters:<\/strong><\/p><ul class=\"wp-block-list\"><li><code>excerpt_length<\/code> &#8211; Modify word count<\/li><li><code>excerpt_more<\/code> &#8211; Modify &quot;more&quot; string<\/li><li><code>wp_trim_excerpt<\/code> &#8211; Applied to final excerpt<\/li><\/ul><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">normalize_whitespace()<\/h3><p>Normalizes EOL characters and strips duplicate whitespace.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function normalize_whitespace( $str )<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">zeroise()<\/h3><p>Pads a number with leading zeros.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function zeroise( $number, $threshold )<\/code><\/pre><\/div><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">zeroise( 5, 3 ); \/\/ &#039;005&#039;<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">human_time_diff()<\/h3><p>Returns human-readable time difference.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function human_time_diff( $from, $to = 0 )<\/code><\/pre><\/div><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">echo human_time_diff( $post_time, time() ); \/\/ &quot;2 hours&quot;<\/code><\/pre><\/div><p><strong>Filter:<\/strong> <code>human_time_diff<\/code> &#8211; Modify output.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_slash() \/ wp_unslash()<\/h3><p>Adds or removes slashes for WordPress APIs.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function wp_slash( $value )\nfunction wp_unslash( $value )<\/code><\/pre><\/div><p>Handles both strings and arrays recursively.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">capital_P_dangit()<\/h3><p>Corrects &quot;Wordpress&quot; to &quot;WordPress&quot;.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function capital_P_dangit( $text )<\/code><\/pre><\/div><p>Applied to titles and content automatically.<\/p>","protected":false},"excerpt":{"rendered":"<p>Escaping Functions Escaping functions make data safe for output in a specific context. Always escape on output. esc_html() Escapes a string for safe output in HTML content. function esc_html( $text&#8230;<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"footnotes":""},"tags":[],"project":[624],"project_type":[749],"class_list":["post-5633","documentation","type-documentation","status-publish","hentry","project-formatting","project_type-wordpress-reference"],"project_info":{"id":589,"name":"WordPress Core","slug":"wordpress-core"},"project_type_info":{"id":749,"name":"WordPress Reference","slug":"wordpress-reference"},"_links":{"self":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5633","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation"}],"about":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/types\/documentation"}],"version-history":[{"count":17,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5633\/revisions"}],"predecessor-version":[{"id":10901,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5633\/revisions\/10901"}],"wp:attachment":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/media?parent=5633"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/tags?post=5633"},{"taxonomy":"project","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/project?post=5633"},{"taxonomy":"project_type","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/project_type?post=5633"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}