WordPress输出文本出现问题(‘esc_html’和‘wp_richedit_pre’)

时间:2011-10-18 作者:Siri

输出文本有问题。在WordPress控制面板中编辑文本时,一切看起来都正常:

http://i.stack.imgur.com/GaIut.png

但当我将其输出到html时:

<?php esc_html( wp_richedit_pre( $_product->details ) ); ?>
看起来是这样的:

http://i.stack.imgur.com/r81xE.png

可能有什么问题?请寻求帮助。

2 个回复
最合适的回答,由SO网友:Siri 整理而成

嗯。。。奇怪的我查看了文件“wp includes/formatting”。php\'在函数wp\\u richedit\\u pre上:

function wp_richedit_pre($text) {
      // Filtering a blank results in an annoying <br />\\n
      if ( empty($text) ) return apply_filters(\'richedit_pre\', \'\');

      $output = convert_chars($text);
      $output = wpautop($output);
      $output = htmlspecialchars($output, ENT_NOQUOTES);

      return apply_filters(\'richedit_pre\', $output);
}
相反,我使用了“wpautop()”,它可以工作。

http://i.stack.imgur.com/Jiuiy.png

谢谢你的提示。

SO网友:soulseekah

假设$_product->details 包含可以称为帖子内容的内容,并且包含HTML,如果您想让浏览器呈现HTML,那么您就做错了。

请参阅esc_html 函数并在沙盒中使用它-您很快就会发现该函数所做的(就像Codex所说的)是逃避HTML,即将任何特殊符号转换为HTML实体,因此这些符号被呈现为符号,而不被浏览器解释。

echo esc_html(\'<b>a string</b>\'); // Produces &lt;b&gt;a string&lt;/b&gt;
echo \'<b>a string</b>\'; // Produces <b>a string</b>
因此,您的问题的简短答案似乎是-删除esc_html 输出周围的功能。

结束

相关推荐

获取在Functions.php中设置的变量,并在我的Custom Post模板中回显它们

在我的函数中设置了以下函数。php文件,以允许我的自定义帖子类型“Slideshow”工作。add_action( \'the_post\', \'paginate_slide\' ); function paginate_slide( $post ) { global $pages, $multipage, $numpages; if( is_single() && get_post_type() == \'lom_s