<p></p> 缺少 wp_editor( get_option() );

Gbr*_*eux 3 wordpress

我正在尝试为我的主题添加一些选项,并且我添加了一个所见即所得的文本区域,并且该文本区域的值将进入选项表(wp-options)。

所以这是我使用的代码:

$settings = array(
  'textarea_name' => 'options[content]',
  'quicktags' => true,
  'tinymce'=> true,
);
wp_editor( get_option('content','default_value'), 'content', $settings );
Run Code Online (Sandbox Code Playgroud)

这项工作非常好,但这显然<p>从内容中删除了所有标签,我完全不知道为什么..

例如,当我写这样的东西时:

Level 1 title
  Level 2 title
    a paragraph
    another paragraph
Run Code Online (Sandbox Code Playgroud)

这是发送到名为“内容”的数据库的代码:

<h1>Level 1 title</h1>
  <h2>Level 2 title</h2>
    a paragraph another paragraph
Run Code Online (Sandbox Code Playgroud)

而不是这个:

<h1>Level 1 title</h1>
  <h2>Level 2 title</h2>
    <p>a paragraph</p>
    <p>another paragraph</p>
Run Code Online (Sandbox Code Playgroud)

你知道我可以做些什么来获得所有标签不变的价值吗?

ps:当我<p>手动将标签添加到文本侧时,它会一直工作,直到我回到可视侧并重新保存。

谢谢你的帮助

Gee*_*eeC 6

我知道这是一个老问题,已经有一段时间了,但答案对我不起作用,所以我添加了解决方案,以防万一它可以帮助其他人。

我应该说明一下,我的问题略有不同,它在插件的管理设置页面中,而不是在主题中,但原理应该是相同的。也就是说,在这两种情况下, wp_editor 的输出都需要存储在一个选项中,然后在完整的段落标记的情况下进行检索。

我的解决方案基于wp_editorCodex 描述,并涉及将 wpautop 作为参数添加到 wp_editor 调用。有点违反直觉,它需要设置为false以便自动添加段落标签。但是,对 wpautop 的原始调用也需要在管理页面中包含段落标记。

$args = array(
  'wpautop' => false
);
wp_editor( wpautop( $content ), $editor_id, $args );
Run Code Online (Sandbox Code Playgroud)