要在查询筛选器中使用wp_get_Current_User()

时间:2016-08-11 作者:Adeel Raza

我正在使用WP“query”过滤器,在我的函数中,我想使用WP\\u get\\u current\\u user()。但是当我调用它时,我得到了一个致命的错误。因为WP尚未加载该函数。有解决办法吗?

public  function __construct() {
   add_filter(\'query\', array($this,\'my_func\'), 10, 1);

}

function my_func($param){
   $current_user = wp_get_current_user(); // Getting fatal error here
}

1 个回复
SO网友:KnightHawk

query 过滤器“应用于所有查询(至少在加载插件后运行所有查询)”,如前所述here in the wordpress codex 您应该做进一步的测试,以确保您处于您想要的查询中。可能某个或多个查询在目标查询之前运行,这就是函数尚未加载的原因。

可能的选项:

您可以检查功能wp_get_current_user() 使用前已存在is_user_logged_in(), 但您可能仍需要检查此函数是否存在,可能需要使用稍后运行的筛选器,但我不知道您选择此筛选器的确切原因,可能这不是您的选项

相关推荐

将wp_Query替换为wp_User_Query

我在插件中制作了一些订阅者档案和单曲(个人资料页),其中我还包括了一个“用户单曲”模板,通过template_include. 不过,我正在尝试从插件中删除一些模板,以使其使用主题模板。我用了locate_template( \'single.php\' ) 从活动主题中选择单个模板。我没有使用全局wp_query 在本例中显示我的内容,但页面显示了基于查询默认值的循环(十篇帖子)。我想知道的是,我是否可以完全放弃默认查询,用wp_user_query 我可以将查询到的用户ID输入其中。然后我想筛选the