为什么、在哪里以及何时在筛选器/挂钩中使用引用指针?

时间:2011-09-02 作者:hsatterwhite

为什么、在何处以及何时在过滤器/挂钩中使用引用指针?建议或要求时不使用它们的潜在缺点是什么?只是想寻找一个比《法典》提供的更详细的答案,也许还有一些现实世界中的应用。

例如:add_filter(\'some_wp_filter\', array(&$this, \'my_function_to_filter\');

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

您给出的示例是在使用类构建插件/主题时使用的。

在正常使用中functions.php 文件将只包含:

function my_function_to_filter( $args ) {
    // ... function stuff here
    return $args;
}
add_filter(\'some_wp_filter\', \'my_function_to_filter\');
但是,如果您使用的是一个类,情况会有所不同。你可能会有my-class.php 文件包含:

class My_Class {
    function my_function_to_filter( $args ) {
        // ... function stuff here
        return $args;
    }
    add_filter(\'some_wp_filter\', array(&$this, \'my_function_to_filter\'));
}
在这种情况下,&$this 正在传入对类的引用,以便调用的筛选器是my_function_to_filter 当前类中的函数。如果希望将过滤器调用都保持在同一位置,也可以使用静态方法来实现这一点。

所以在my-class.php 您将拥有:

class My_Class {
    static function my_function_to_filter( $args ) {
        // ... function stuff here
        return $args;
    }
}
并且在functions.php 或者您的核心插件文件:

add_filter(\'some_wp_filter\', array(\'My_Class\', \'my_function_to_filter\'));

结束

相关推荐

Custom Post Row Actions

我偶然发现this question 在写这个问题的时候。我有一个问题是关于这个问题的。我发现你用的是get_delete_post_link 筛选为我的操作创建一个新的url(或一个类似的函数——在任何情况下,我都会将该函数与布尔值一起使用)。唯一的问题是,I don\'t know how to capture the event now. 考虑到我在谷歌上找不到很多关于行后操作的例子,我将不胜感激-/public function _wp_filter_get_delete_post_link( $