snipt

Ctrl+h for KB shortcuts
Notice: Snipt is moving away from free accounts on May 1st, 2014. Read more about the transition here.
#42682

PHP

Prevent TinyMCE from stripping schema.org attributes in Wordpress

<?php

// Prevent TinyMCE from stripping out schema.org metadata
function schema_TinyMCE_init($in)
{
    /**
     *   Edit extended_valid_elements as needed. For syntax, see
     *   http://www.tinymce.com/wiki.php/Configuration:valid_elements
     *
     *   NOTE: Adding an element to extended_valid_elements will cause TinyMCE to ignore
     *   default attributes for that element.
     *   Eg. a[title] would remove href unless included in new rule: a[title|href]
     */
    if(!empty($in['extended_valid_elements']))
        $in['extended_valid_elements'] .= ',';

    $in['extended_valid_elements'] .= '@[id|class|style|title|itemscope|itemtype|itemprop|datetime|rel],div,dl,ul,dt,dd,li,span,a|rev|charset|href|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur]';

    return $in;
}
add_filter('tiny_mce_before_init', 'schema_TinyMCE_init' );

?>
https://snipt.net/embed/91a7515fe8c6f72235bc7c5d1aa53876/
https://snipt.net/raw/91a7515fe8c6f72235bc7c5d1aa53876/
91a7515fe8c6f72235bc7c5d1aa53876
php
PHP
23
2014-04-23T10:22:10
True
False
Jul 10, 2012 at 07:38 PM
/api/public/snipt/42682/
prevent-tinymce-from-stripping-schemaorg-attributes-in-wordpress
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#L-1"> 1</a> <a href="#L-2"> 2</a> <a href="#L-3"> 3</a> <a href="#L-4"> 4</a> <a href="#L-5"> 5</a> <a href="#L-6"> 6</a> <a href="#L-7"> 7</a> <a href="#L-8"> 8</a> <a href="#L-9"> 9</a> <a href="#L-10">10</a> <a href="#L-11">11</a> <a href="#L-12">12</a> <a href="#L-13">13</a> <a href="#L-14">14</a> <a href="#L-15">15</a> <a href="#L-16">16</a> <a href="#L-17">17</a> <a href="#L-18">18</a> <a href="#L-19">19</a> <a href="#L-20">20</a> <a href="#L-21">21</a> <a href="#L-22">22</a> <a href="#L-23">23</a></pre></div></td><td class="code"><div class="highlight"><pre><span id="L-1"><a name="L-1"></a><span class="cp">&lt;?php</span> </span><span id="L-2"><a name="L-2"></a> </span><span id="L-3"><a name="L-3"></a><span class="c1">// Prevent TinyMCE from stripping out schema.org metadata</span> </span><span id="L-4"><a name="L-4"></a><span class="k">function</span> <span class="nf">schema_TinyMCE_init</span><span class="p">(</span><span class="nv">$in</span><span class="p">)</span> </span><span id="L-5"><a name="L-5"></a><span class="p">{</span> </span><span id="L-6"><a name="L-6"></a> <span class="sd">/**</span> </span><span id="L-7"><a name="L-7"></a><span class="sd"> * Edit extended_valid_elements as needed. For syntax, see</span> </span><span id="L-8"><a name="L-8"></a><span class="sd"> * http://www.tinymce.com/wiki.php/Configuration:valid_elements</span> </span><span id="L-9"><a name="L-9"></a><span class="sd"> *</span> </span><span id="L-10"><a name="L-10"></a><span class="sd"> * NOTE: Adding an element to extended_valid_elements will cause TinyMCE to ignore</span> </span><span id="L-11"><a name="L-11"></a><span class="sd"> * default attributes for that element.</span> </span><span id="L-12"><a name="L-12"></a><span class="sd"> * Eg. a[title] would remove href unless included in new rule: a[title|href]</span> </span><span id="L-13"><a name="L-13"></a><span class="sd"> */</span> </span><span id="L-14"><a name="L-14"></a> <span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="k">empty</span><span class="p">(</span><span class="nv">$in</span><span class="p">[</span><span class="s1">&#39;extended_valid_elements&#39;</span><span class="p">]))</span> </span><span id="L-15"><a name="L-15"></a> <span class="nv">$in</span><span class="p">[</span><span class="s1">&#39;extended_valid_elements&#39;</span><span class="p">]</span> <span class="o">.=</span> <span class="s1">&#39;,&#39;</span><span class="p">;</span> </span><span id="L-16"><a name="L-16"></a> </span><span id="L-17"><a name="L-17"></a> <span class="nv">$in</span><span class="p">[</span><span class="s1">&#39;extended_valid_elements&#39;</span><span class="p">]</span> <span class="o">.=</span> <span class="s1">&#39;@[id|class|style|title|itemscope|itemtype|itemprop|datetime|rel],div,dl,ul,dt,dd,li,span,a|rev|charset|href|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur]&#39;</span><span class="p">;</span> </span><span id="L-18"><a name="L-18"></a> </span><span id="L-19"><a name="L-19"></a> <span class="k">return</span> <span class="nv">$in</span><span class="p">;</span> </span><span id="L-20"><a name="L-20"></a><span class="p">}</span> </span><span id="L-21"><a name="L-21"></a><span class="nx">add_filter</span><span class="p">(</span><span class="s1">&#39;tiny_mce_before_init&#39;</span><span class="p">,</span> <span class="s1">&#39;schema_TinyMCE_init&#39;</span> <span class="p">);</span> </span><span id="L-22"><a name="L-22"></a> </span><span id="L-23"><a name="L-23"></a><span class="cp">?&gt;</span><span class="x"></span> </span></pre></div> </td></tr></table>
microdata, schema, tinymce, wordpress