Note 此答案最初包含在@bitstarr\'根据WPSE的Q&;一个模型。
也许其他人会遇到这个问题,所以我将在这里与大家分享我的解决方案。
function make_mce_awesome( $init ) {
/*
There are easier things than make \'left/center/right align text\' to use classes instead of inline styles
*/
// decode
$formats = preg_replace( \'/(\\w+)\\s{0,1}:/\', \'"\\1":\', str_replace(array("\\r\\n", "\\r", "\\n", "\\t"), "", $init[\'formats\'] ));
$formats = json_decode( $formats, true );
// set correct values
$formats[\'alignleft\'][0][\'classes\'] = \'text--left\';
$formats[\'aligncenter\'][0][\'classes\'] = \'text--center\';
$formats[\'alignright\'][0][\'classes\'] = \'text--right\';
// remove inline styles
unset( $formats[\'alignleft\'][0][\'styles\'] );
unset( $formats[\'aligncenter\'][0][\'styles\'] );
unset( $formats[\'alignright\'][0][\'styles\'] );
// encode and replace
$init[\'formats\'] = json_encode( $formats );
return $init;
}
add_filter( \'tiny_mce_before_init\', \'mkae_mce_awesome\' );
首先,必须对设置进行编码,使其在PHP中易于使用。然后我添加类名(
text--XXX
) 并移除导致内联样式的零件。最后,将转换回阵列。
Bonus: 通过添加这一行,您可以使编辑器更加出色。
$init[\'block_formats\'] = \'Paragraph=p;Heading 2=h2;Heading 3=h3;Heading 4=h4\';
这将阻止用户使用
<h1>
头条-搜索引擎优化噩梦…
我希望这对某人有用。欢迎改进!
另请参见https://wordpress.stackexchange.com/a/141539