对过滤器句柄有限制吗?

时间:2014-04-15 作者:EdgeCaseBerg

我今天查看了一个第三方插件的代码,发现他们在这样做:

add_filter(\'some_base_handle\'.sanitize_title($string), ...)

奇怪的是,因为我使用xh\\U prof查找占用太多时间的代码,并且对为什么有这么多调用来清理标题感到困惑。删除sanitize\\u标题是否安全,或者是否有充分的理由?

有人有我可能错过的食品法典文件的链接吗?我看了add_filter的页面,但什么也没看到。

编辑:

我查看了wp包含/插件。php代码,看看是否有什么和没有看到任何突出的,有人知道吗?

function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1 )      {
    global $wp_filter, $merged_filters;

    $idx = _wp_filter_build_unique_id($tag, $function_to_add, $priority);
    $wp_filter[$tag][$priority][$idx] = array(\'function\' => $function_to_add,     \'accepted_args\' => $accepted_args);
     unset( $merged_filters[ $tag ] );
    return true;
}

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

add_filter(\'some_base_handle\'.sanitize_title($string), ...)

他在这里所做的是一个变量过滤器句柄,虽然“sanitize\\u title”可能不是这里使用的正确函数,但它实际上取决于$string的可能值以及$string的来源。

如果您有许多不同的内容可以过滤,并且希望有一些简单的方法来过滤其中的任何/所有内容,那么变量过滤器名称非常方便。

这个sanitize_title 函数在这里使用不是最差的,因为它基本上格式化任意字符串以适合URL,用破折号替换空格,将所有内容都小写,删除重音符号等等。也许不是最好的,但这取决于具体情况。

结束

相关推荐

get_posts() and filters

我为添加了自定义筛选函数the_posts 在插件中筛选。add_filter(\'the_posts\', \'posts_filter\'); function posts_filter() { … } 这在主循环中运行得很好,这意味着帖子会按照我在posts_filter 作用但我正在打电话get_posts() 在ajax请求中获取一些帖子。在那里,过滤器不起作用。query_posts() 或自定义wp_query 不要工作太多。所以问题是:我如何才能在主循环旁获得按the_p