我今天第一次注意到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>
有可能防止这种情况吗?
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"
在…上
p
和
span
标签。
请注意,这是针对WordPress 4的。x、 它使用TinyMCE 4。
我仍然很想知道这些课程是从哪里来的。奇怪的是,多个应用程序将完全相同的类附加到HTML标记中。。。