从未调用过`authate`筛选器

时间:2015-11-27 作者:Snowcrash

我添加并通过网络激活了一个插件,代码如下:

add_filter(\'authenticate\', \'my_authenticate\', 1000, 2);

function my_authenticate($user, $username){

    // We never arrive in this function
从调试器中,我可以看到add_filter 但我们从未进入my_authenticate 作用

为什么会这样?

我该如何解决这个问题?

1 个回复
SO网友:s_ha_dum

我能想到一些可能性,尽管肯定还有更多。

成功登录后,会重定向到仪表板,这意味着如果您希望看到该函数的输出,则不会看到。请尝试以下操作:

add_filter(\'authenticate\', \'my_authenticate\', 1000, 2);

function my_authenticate($user, $username){
  var_dump($user, $username);
  die;
  // We never arrive in this function
  return $user;
}
登录,您应该会看到输出。删除die 您将看不到任何内容,因为在asense中,输出被重定向擦除。

  • The authenticate filter is inside a pluggable function, 因此,该函数可能已被主题或插件替换,而filteris实际上没有被调用remove_all_filters()例如
  • 相关推荐

    添加到数组并通过do_action/Apply_Filters传递它

    作为练习,我正在使用PHPclass to add meta boxes 我在GitHub上找到了。我只是复制了代码,现在我正在玩它来理解它。其工作原理如下:包含该类的文件包含在init中。在该文件内部,但在类外部,有一个空数组$meta_boxes 已初始化之后,使用apply_filters. 我猜是apply_filters 使用而不是do_action 因为后者不返回任何内容——$meta_boxes = apply_filters( \'cmb_meta_boxes\', $meta_boxes