我正在尝试为我的主题添加一些选项,我添加了一个wysiwyg textarea,这个textarea的值将转到选项表(wp-options)。
所以这是我使用的代码:
$settings = array(
'textarea_name' => 'options[content]',
'quicktags' => true,
'tinymce'=> true,
);
wp_editor( get_option('content','default_value'), 'content', $settings );
这项工作还不错,但这显然会删除内容中的所有<p>
标签,我完全不知道为什么......
例如,当我写这样的东西时:
Level 1 title
Level 2 title
a paragraph
another paragraph
这是发送到数据库的代码,名为&#39; content&#39;:
<h1>Level 1 title</h1>
<h2>Level 2 title</h2>
a paragraph another paragraph
而不是:
<h1>Level 1 title</h1>
<h2>Level 2 title</h2>
<p>a paragraph</p>
<p>another paragraph</p>
你知道我能做什么吗?所有标签的价值都保持不变?
ps:当我手动将<p>
标签添加到文本端时,它会一直有效,直到我回到可视端并重新保存。
感谢您的帮助
答案 0 :(得分:1)
在您的内容上使用wpautop
功能,在您的段落周围添加<p>
标记。
wp_editor( wpautop(get_option('content','default_value')), 'content', $settings );
答案 1 :(得分:1)
我知道这是一个古老的问题,已经有一段时间接受了答案,但是该答案对我没有用,所以我添加了可以对其他人有帮助的解决方案。
我应该解释一下,我的问题略有不同,因为它是在插件的“管理设置”页面中,而不是主题,但原理应该相同。也就是说,在两种情况下,wp_editor的输出都需要存储在一个选项中,然后再使用完整的段落标签进行检索。
对我来说,解决方案基于Codex description of the wp_editor,涉及将wpautop作为参数添加到wp_editor调用中。有点违反直觉,需要将其设置为false
以便自动添加段落标签。但是,还要求对wpautop的原始调用在管理页面中包含段落标签。
$args = array(
'wpautop' => false
);
wp_editor( wpautop( $content ), $editor_id, $args );