主题功能扩展:自定义 WordPress 默认编辑器样式

各位开发完毕的主题,在使用过程中,也许会发现在 WordPress 后台日志编辑器中定义好的布局和样式,等在前台页面查看时,完全和自己的想法不一样。

这是由于 WP 后台编辑器使用了一套自己的样式表,而且其与所使用的主题没有直接关系。这也就是为什么后台编辑器中的效果和前台显示的效果有出入的原因。这也让“所见即所得编辑器”这个名字显得有点言过其实。

不过,我们可以通过在所使用的主题中增加一些样式表的信息来让默认编辑器和前台主题的显示效果保持一致。

在 WordPress 2.9.x 以及之前的版本中,可以使用以下方法:

将以下代码插入到主题的 functions.php 中:

add_filter('mce_css', 'my_editor_style');
function my_editor_style($url) {

  if ( !empty($url) )
    $url .= ',';

  // Change the path here if using sub-directory
  $url .= trailingslashit( get_stylesheet_directory_uri() ) . 'editor-style.css';

  return $url;
}

这将告知编辑器,主题为它提供了一套新的样式。

从 WordPress 3.0.x 开始,程序已经提供了相应的自定义编辑器样式的代码,只需要将下面代码加入到主题的 functions.php 文件中即可:

add_editor_style();

然后,在主题的目录中,创建一个 editor-style.css 文件,并且将主题现有样式表文件中的必要内容复制到该文件内。主要是将一些譬如日志文章中文字排版的相关样式信息,以及图片显示效果等代码复制进去。像主题的整体布局以及侧栏和除了日志本身以外的代码,可以不进行复制。

这样,当您在后台对文章进行编辑的时候,就可以最大限度上让前台页面与后台编辑器中的内容看起来一样了。

参考文件:Can themes style the visual editor?

8 thoughts on “主题功能扩展:自定义 WordPress 默认编辑器样式

      • mce编辑器中文空格问题除了text-indent的做法外,还有没有别的方法了?如果给小白客户用,这个问题实在是有点难以解决。

        • 既然是交给客户用了,那最好还是设计主题的时候就把一些样式定死比较好。免得小白们摸不清到底后台是啥样,前台的样式自己才会满意哦!呵~~

  1. LZ 可否告知 你的 那儿黑框 是怎么设置的?
    因为我的博客会主要关于软件 自然会有很多代码块 但是WordPress似乎不支持 所以问下

  2. LZ 谢谢回复

    再问下 那这个插件 是不是要自己安装 默认WordPress 并没有提供 对么?

    我在ixiezi上注册了一个帐号 但其似乎只支持指定插件 好像不能自己安装

    那Wordpress 自身有提供类似效果的插件么?

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>