帖子内容、特殊字符和过滤器

时间:2013-08-13 作者:Michael Ecklund

我在the_content.

add_filter(\'the_content\', \'edit_the_content\');
function edit_the_content($content){
    return $content;
}
很简单吧?

但是,当它输出$content 从我的edit_the_content() 回调WordPress似乎将一些字符(但不是所有字符)转换为特殊字符。

Example:

它是=it’s

但锚定标记保持不变且未转换。

是否有运行的某种过滤器the_content 它只将一些字符转换为特殊字符,而不是全部字符?

1 个回复
最合适的回答,由SO网友:Michael Ecklund 整理而成

使用以下代码片段this:

$hook_name = \'the_content\';
global $wp_filter;
var_dump($wp_filter[$hook_name]);
我能够找到WordPress过滤器的所有挂钩回调函数的列表:the_content.

然后我找到了几个可能的罪犯,然后寻找他们的功能存在。

在缩小列表范围后,我得出了导致问题的挂钩回调函数的结论。

在文件中./wp-includes/default-filters.php 在…上line 135 从WordPress 3.6开始,有一个挂钩函数add_filter(\'the_content\', \'wptexturize\');

在文件中./wp-includes/formatting.php 在…上line 29 自WordPress 3.6起,有wptexturize().

/**
 * Replaces common plain text characters into formatted entities
 *
 * As an example,
 * <code>
 * \'cause today\'s effort makes it worth tomorrow\'s "holiday"...
 * </code>
 * Becomes:
 * <code>
 * &#8217;cause today&#8217;s effort makes it worth tomorrow&#8217;s &#8220;holiday&#8221;&#8230;
 * </code>
 * Code within certain html blocks are skipped.
 *
 * @since 0.71
 * @uses $wp_cockneyreplace Array of formatted entities for certain common phrases
 *
 * @param string $text The text to be formatted
 * @return string The string replaced with html entities
 */

How to prevent WordPress from formatting the_content characters into HTML entities?

remove_filter(\'the_content\', \'wptexturize\');
吸取的教训。在这个答案的开头使用这段代码将帮助您。。。至少,找到特定WordPress挂钩的所有附加回调函数。这是一个很好的开始,其余的可能需要一些搜索和读取每个回调函数的功能。

结束

相关推荐

About Hooks and Filters

嗯,我很难理解动作和过滤器之间的区别。我确实在代码中使用动作,但我是一个新手,甚至连一点过滤器都不知道。我去过codex,以及NickTheGeek、BillErickson、GaryJones等的多个网站,但没有去过vein。如果你能用简单的话告诉我,并举例说明动作、过滤器和挂钩的基本内容和区别。非常感谢。