今天遇到一个比较奇葩的问题,就是wordpress的内容输出不会自动换行,所有的内容都挤在了一块。当然我说的是前台的输出。 后台编辑器中没有任何问题。显示也是带换行的。
经过一番检查,发现模板里的内容输出是 $post->post_content
, 直接读取了数据库的信息。没有经过wordpress的处理,就直接输出了。这里说的wordpress的处理,就是一些钩子的处理。
默认的情况
wordpress 默认输出是自动加上p
标签的。如果直接输出流 $post->post_content
则不会自动加上 p
标签。
解决的方法
使用 the_content()
输出内容。 这是标准的写法,数据会经过wordpress的处理。
(或者可以用 do_shortcode($post->post_content)
试试。!我是没有测试)
使用the_content()输出,不想输入p标签怎么处理
把下面的代码,加入到 wordpress中,就可以防止自动添加p标签
remove_filter('the_content', 'wpautop');
wordpress 的后台编辑器为什么不自动添加一个p标签
我个人测猜测是, 更灵活,更方便 。 如果不需要了可以用 remove_filter('the_content', 'wpautop');
解决。 这样存入数据表表的数据是比较干净的,可以做更进一步的处理。防止自动添加的标签污染原始数据。
以上的解决太复杂了,来点简答的解决方法
有, 使用插件。 搜索 TinyMCE Advanced 安装后又个选项可以自动加上p标签。