保存和显示自定义字段数据时保留换行符

时间:2012-08-20 作者:Thomas

我正在通过一个表单插件收集数据,并将数据保存在带有几个自定义字段的帖子中。然后,我使用。。。

if( get_post_meta( $post->ID, \'_aboutus\', true ) ) :                        
    echo \'<div class="companyaboutus">\' . get_post_meta($post->ID, \'_aboutus\', true) . \'</div>\';
endif;
“关于我们”文本的表单字段是一个文本区域,大多数贡献者会在该字段中添加几行文本。通过上面的代码显示内容/文本不会显示任何换行符-知道如何保留换行符吗?

7 个回复
SO网友:Thomas

我坚持回答同样的问题,并进行了实际测试wpautop(). 它起作用了,例如。

echo wpautop(get_post_meta($post->ID, \'_aboutus\', true));
尽管如此,我还是遇到了一个问题。清理用户输入时,不要使用在使用wpautop之前删除换行符的清理方法:)

SO网友:Halaster

这可能会有所帮助,

http://codex.wordpress.org/Function_Reference/wpautop

这会将新行转换为html<br/> 标签

SO网友:2ndkauboy

我不知道你使用哪个表单插件,以及它是如何将数据保存到数据库的。但我想知道换行符是否保存到数据库中。

但是您可能知道,HTML页面的源代码中的换行符不会在浏览器上显示换行符。是一个非常方便的PHP函数,名为nl2br() 这将为用户内容文本中的每个换行符添加一个标记。

SO网友:helgatheviking

我想做的是重新创建应用于the_content 通过在函数中添加以下内容。php。

/* 
 * Recreate the default filters on the_content
 * this will make it much easier to output the meta content with proper/expected formatting
*/
add_filter( \'meta_content\', \'wptexturize\'        );
add_filter( \'meta_content\', \'convert_smilies\'    );
add_filter( \'meta_content\', \'convert_chars\'      );
add_filter( \'meta_content\', \'wpautop\'            );
add_filter( \'meta_content\', \'shortcode_unautop\'  );
add_filter( \'meta_content\', \'prepend_attachment\' );
然后模板代码如下所示:

<?php 
if( $about = get_post_meta($post->ID, \'_aboutus\', true ) ): 
  echo \'<div class="companyaboutus">\'. apply_filters( \'meta_content\', $about ) . \'</div>\'; 
endif; 
?>
当然,你可以使用the_content 但是我发现插件也喜欢挂接到显示共享按钮之类的东西上,所以这种方法避免了共享按钮占据页面。

SO网友:Thomas

这似乎很好:

<? $source = get_post_meta($post->ID, \'_aboutus\', true);
if($source){
$source = explode("\\n", $source); ?>
<? for($i = 0;$i<sizeof($source);$i++){ ?>
<? echo $source[$i]; ?><br />
<? } ?>
<? } ?>
<?php if(get_post_meta($post->ID, \'_aboutus\', true)):                                       echo \'</div>\'; endif; ?>

SO网友:user2242022

音乐会\\n<br>

nl2br(get_post_meta($post->ID, \'_aboutus\', true));

SO网友:Nick B

使用wp_kses 使用空数组作为allowed_html 参数这将在不删除换行符的情况下清理字符串,并应通过大多数编码标准

结束

相关推荐