在插件开发中找不到筛选器API的文档

时间:2012-03-13 作者:user1063434

我是wordpress插件开发新手,今天下午我阅读了整个文档http://codex.wordpress.org/Plugin_API/Filter_Reference, 我尝试编写一些代码,如插件文件中的以下代码:

add_filter(\'the_title\', \'my_own_function\', 10, 2);

Function is:

function my_own_function($title, $post_id){
    return $title. $post_id;
}    
这个插件确实有效,但文档没有告诉过滤器APIthe_title 有两个参数,以及这些参数是什么。这就是问题所在!如果它不告诉我,我怎么知道?

Here I just quote the official documentation relevant excerpt:

the_title 
applied to the post title retrieved from the database, prior to printing on the screen (also used in some other operations, such as trackbacks).
所以,我的question is: 如何找到过滤器API的完整解释,例如the_title? 请帮忙。

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

只有一个答案:You always go and read the source code.

有一些在线工具可以帮助您做到这一点,特别是Adam Brown\'s Hooks List, 其中包含指向源代码的链接,您可以从中读取参数过滤器和操作的内容。

请注意,单个筛选器可以具有可变数量的参数,这取决于它的使用位置。例如,在class-wp-posts-list-table.php the_title 筛选器只发送一个参数,而不是像中那样发送两个参数post-template.php

因此,再次强调,始终读取源代码,特别是应用过滤器的位置。

SO网友:kaiser

如何根据经验添加过滤器:

如果筛选器有多个var,则必须添加priority & num_args 至过滤器

# Example:
// RIGHT
add_filter( \'the_title\', \'your_callback_fn\', 20, 2 );
// WRONG
add_filter( \'the_title\', \'your_callback_fn\' );
如何在回调中返回另一条经验法则(可能并不总是正确的,但到目前为止我还没有找到相反的方法):

始终返回第一个参数

// Example
function your_callback_fn( $var_A, $var_B, $var_C )
{
    // do stuff - the other vars (B-C) are here for your help

    // ! important: return the 1st var
    return $var_A;
}
add_action( \'the_funk\', \'your_callback_fn\', 10, 3 );

结束