使用什么来代替CONTENT_SAVE_PRE过滤器?

时间:2014-04-01 作者:Tom Oakley

我在Adam Brown的网站上看到content_save_pre 滤器is depreciated 从WordPress 3.8开始-这是真的吗?上面没有写official codex page 对于content_save_pre 所以我持怀疑态度。如果内容已折旧,在按“发布/更新”后,但在内容写入数据库之前,我会使用哪个过滤器编辑内容?

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

AdamBrown的网站上说,钩子不再出现在3.8中。我greped a 3.9发现:

bash-4.2# grep -Rni \'content_save_pre\' *
wp-includes/kses.php:1327: * The wp_filter_post_kses() function is added to the \'content_save_pre\',
wp-includes/kses.php:1344:      add_filter(\'content_save_pre\', \'wp_filter_post_kses\');
wp-includes/kses.php:1370:      remove_filter(\'content_save_pre\', \'wp_filter_post_kses\');
wp-includes/default-filters.php:89:foreach ( array( \'content_save_pre\', \'excerpt_save_pre\', \'comment_save_pre\', \'pre_comment_content\' ) as $filter ) {
有趣的是,滤波器并没有在任何地方应用,但仍由核心在几个地方使用。这将是一个很大的疏忽。如果你再四处看看,你会发现:

http://adambrown.info/p/wp_hooks/hook/{$field_no_prefix}_save_pre
所以grep 同样,底部的刚性和正确性有所降低:

wp-includes/post.php:2010:                      $value = apply_filters("{$field_no_prefix}_save_pre", $value);
这是一个动态过滤器,我想这就是为什么Adam Brown迷失了方向。这一点得到了法典本身的确认:

“content\\u save\\u pre”过滤器是一组动态过滤器的一部分,允许您在将内容保存到数据库之前对其进行清理。此筛选器在wp admin中运行。

http://codex.wordpress.org/Plugin_API/Filter_Reference/content_save_pre
我相信这就是你要找的钩子。换句话说,content_save_pre 应该还能用。它是动态生成的,但仍应工作。

结束

相关推荐

如何访问调用Apply_Filters()的函数中的变量?

我试图根据调用的函数中的变量是否apply_filters() 等于特定值。该变量不会传递给apply_filters() 参数。这或许可以解释我的意思:// function in wordpress core function get_var_b() { // generating $var_a $var_a = \"a\"; // some code ... $var_b = apply_filters(\'get_var_b\