WP_EDITOR不在单行内容上应用wpautop

时间:2012-03-02 作者:Ewald

对于当前的项目,我试图回显保存在主题选项页面中的一行文本。我对用户输入使用wp\\u编辑器功能,而不是文本区域。我使用的代码非常简单:

    <?php
    break;
    case "wysiwyg" : 
    ?>
     <tr valign="top">
       <th scope="row"><?php echo $value[\'name\']; ?>:</th>
       <td>
          <?php
          if( get_settings($value[\'id\']) != "") {
                $settings = stripslashes(get_settings($value[\'id\']));
          }else{
              $settings = $value[\'std\'];
          }
          ?>
          <?php wp_editor($settings,$value[\'id\'],array(\'wpautop\' => true,\'media_buttons\'=>false)); ?>
          <br /><?php echo $value[\'desc\']; ?>
         </td>
        </tr>
    <?php break;
    ?>
我试图通过添加wpautop => true.. 当我尝试在所见即所得模式下添加单行文本时,就会出现问题。保存字段时,不会添加段落。重新加载页面后,html视图将更改回WYSIWYG,并且我的所有html标记都已消失。

我试着用wpautop 函数,但这会在insert变量后追加一个空白段落。我的代码如下所示:

<?php echo wpautop(stripslashes($lo_homepage_highlight_1_text)) ;?>
并将返回:

<p>Lorem ipsum (.....) dolor sit amet. Great rich text</p>
<p></p>
我不明白我在这里错过了什么。

1 个回复
SO网友:Ewald

在做了更多的研究之后,我发现我的save函数不能很好地工作。我想我应该申请wpautopwptexturize 这些条目。我的保存功能如下所示:

        if ( \'save\' == $_REQUEST[\'action\'] ) {
            foreach ($options as $value) {
                update_option( $value[\'id\'], $_REQUEST[ $value[\'id\'] ] ); }
            foreach ($options as $value) {
                if( isset( $_REQUEST[ $value[\'id\'] ] ) ) { update_option( $value[\'id\'], $_REQUEST[ $value[\'id\'] ]  ); } else { delete_option( $value[\'id\'] ); } }
            header("Location: themes.php?page=functions.php&saved=true");
            die;
    }
因为wp\\u编辑器在数组中定义为wysiwyg 我应该能够获取get请求,以确定该字段是否从wp\\U编辑器发送。我将代码调整为,现在它可以工作了:

        if ( \'save\' == $_REQUEST[\'action\'] ) {
            foreach ($options as $value) {
                if ($_REQUEST[$value[\'type\']] == \'wysiwyg\' ) {
                    update_option( $value[\'id\'], wpautop(wptexturize($_REQUEST[ $value[\'id\'] ] ))); 
                } else {
                    update_option( $value[\'id\'], $_REQUEST[ $value[\'id\'] ] ); 
                }               
                foreach ($options as $value) {
                    if( isset( $_REQUEST[ $value[\'id\'] ] ) ) {
                        if($_REQUEST[$value[\'type\']] == \'wysiwyg\') {
                            update_option( $value[\'id\'], wpautop(wptexturize($_REQUEST[ $value[\'id\'] ] )));
                        }
                        else {
                            update_option( $value[\'id\'], $_REQUEST[ $value[\'id\'] ] );
                        }
                    } else {
                        delete_option( $value[\'id\'] );
                    } 
                }
            }
            header("Location: themes.php?page=functions.php&saved=true");
            die;
    }
代码可能会有一些改进,但目前仍有效:)

结束

相关推荐