可能会阻止wordpress添加p1、p2…类转换为TinyMCE中的p标记?

时间:2014-08-18 作者:rkoller

我今天第一次注意到WP在我的p标记中添加了编号的类名(p1,p2…)。

我在函数中有以下与TinyMCE init相关的部分。php。

function my_mce( $init ) {
    $init[\'block_formats\'] = "Paragraph=p; Heading 3=h3; Heading 4=h4";

    $style_formats = array(
        array(
            \'title\' => \'Link\',
            \'selector\' => \'a\',
            \'classes\' => \'link\'
        )
    );
    $init[\'style_formats\'] = json_encode( $style_formats );
    return $init;
}
add_filter(\'tiny_mce_before_init\', \'my_mce\');
在我的php中,一个示例代码段(使用ACF选项字段)如下所示:

  <div class="dataprivacy__feature">
    <h3 class="lat-bn">Google Analytics</h3>
    <?php the_field(\'op-dataprivacy-analytics\', \'option\'); ?>
  </div>
输出的p标记获取p1类:

<div class="dataprivacy__feature">
    <h3 class="lat-bn">Google Analytics</h3>
    <p class="p1">Privacy statement</p>
    <p class="p1 link">More <a title="Google Privacy" href="http://www.google.de/intl/de/privacy/" target="_blank">infos</a>.</p>
  </div>
有可能防止这种情况吗?

1 个回复
SO网友:Jonathan Nicol

我想出了如何用TinyMCE的paste_preprocess 选项

在您的functions.php:

add_filter(\'tiny_mce_before_init\', \'customize_tinymce\');

function customize_tinymce($in) {
  $in[\'paste_preprocess\'] = "function(pl,o){ o.content = o.content.replace(/p class=\\"p[0-9]+\\"/g,\'p\'); o.content = o.content.replace(/span class=\\"s[0-9]+\\"/g,\'span\'); }";
  return $in;
}
传递给paste\\u preprocess的值是一个JavaScript函数,每当内容粘贴到TinyMCE中时,都会执行该函数。该函数使用正则表达式剥离实例,例如。class="p1"class="s1" 在…上pspan 标签。

请注意,这是针对WordPress 4的。x、 它使用TinyMCE 4。

我仍然很想知道这些课程是从哪里来的。奇怪的是,多个应用程序将完全相同的类附加到HTML标记中。。。

结束