【问题标题】:wordwrap issues with special characters in wordpresswordpress 中特殊字符的自动换行问题
【发布时间】:2012-11-29 05:35:59
【问题描述】:

在我的 WordPress 博客中,我在添加新帖子表单的“描述”字段中插入了以下内容。

sss'ss''ss'''ss"ss""sss"""

我正在应用 filter hook(add_filter) the_content() 函数,如下所示。基本上,如果存在超过 50 个字符的意思,我想显示非空格单词,我想在 50 个字符后留出空格。所以我使用 wordwrap 函数来做到这一点。但是在内容中使用特殊字符时,我得到了如下所述的有线输出。

function.php

function filter_content($content) {
  global $post;  
     $original = wordwrap($content,50,' ',' ' ); 
  return $original;
}
add_filter( 'the_content', 'filter_content' );

输出:

   sss’ss”ss”’ss”ss& #8221;"sss”"”

【问题讨论】:

  • “我已经使用以下函数过滤了the_content() function”是什么意思?您是在附加函数 the_content() 还是对 action HOOK the_content 应用过滤器?这些是非常不同的操作。很明显你得到的结果不是由函数 wordwrap() 生成的,不要忘记钩子the_content 是修改内容的一种流行方式,你不知道其他函数已经在做什么或它们的方式去做吧。
  • 为什么你认为函数wordwrap()与输出的奇怪字符有什么关系?无论如何,你的问题是什么?你的“问题”里没有问题,我只看到陈述。
  • 详细阅读,您说当我在单个帖子页面中使用the_content() function 时,它会显示以下有问题的内容。。我真的不明白。 ¿ 您认为问题出在the_content() function 使用时,还是the_content 钩子中的自动换行,还是两者兼而有之?不可能猜到,我不会浪费时间尝试去做。祝你好运。
  • 我正在应用过滤器来操作 HOOK 到 the_content 函数,请查看问题编辑。

标签: php wordpress word-wrap add-filter


【解决方案1】:

问题:

wordwrap 函数正在将特殊字符(引号、双引号等)转换为 html 实体并计为字符串。来自 的 & 和 # 之间出现了 50 个字符。虽然我们得到的输出为 & #8221;

解决方案:

而不是 php,只需尝试 css 解决方案 word-wrap 属性。因此,将 word-wrap:break-word; 样式应用于您的段落标签。 break-word value 将强制断字。但是没有选项可以给出 50 之类的数字。它将包裹取决于容器的宽度。

p{
 word-wrap:break-word; 
}

【讨论】:

  • 我知道我不应该在这个问题上浪费时间。你在开玩笑?查看标签 ¿ 问题与 CSS 有什么关系?请认真一点,看来您为这个令人惊讶的秘密答案发明了这个问题。顺便说一句,在 PHP 中也可以使用 break 和 TRUE 作为参数来完成。不用说,这是一个非常糟糕的解决方案,¿谁想要在自动换行时破坏单词?只有你。
  • @FarFromGenius:您是否尝试过使用
    和 true 参数或只是猜测。那是行不通的。是的,没有人想破坏这个词。我知道 CSS 解决方案不是更好。我也在跟踪这个问题以获得更好的答案。! OP 可能会改变主意,如果有人比这更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-19
  • 2016-04-12
  • 2017-06-03
  • 1970-01-01
相关资源
最近更新 更多