IS_USER_LOGGED_IN()引发未定义的函数错误

时间:2020-08-08 作者:petebolduc

我正在插件页面上运行以下简单的条件语句:

if (! is_user_logged_in()) {
    add_action(\'init\', \'s8w_ajax_login_init\');
}
它引发了一个致命的未定义函数错误is_user_logged_in. 我错过什么了吗?我在同一页上有几个wp globals。我必须打电话给其他人才能让它工作吗?

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

它失败了,因为WordPress没有加载。不要直接向主题中的PHP文件发出AJAX请求,而是将它们发送到REST API端点。

例如:

add_action( \'rest_api_init\', function () {
        register_rest_route( \'petebolduc/v1\', \'/test/\', array(
                \'callback\' => \'petebolduc_ajax\'
        ) );
} );
function petebolduc( $parameters ) {
    $foo = $parameters[\'foo\'];
    return "foo is " . $foo;
}
使用该代码,访问:example.com/wp-json/petebolduc/v1/test?foo=bar

提供:

"foo is bar"

相关推荐

Order users by user role

我在团队页面中显示的用户配置文件中有自定义字段。上面写着“主任”、“研究员”、“毕业生”、“实习生”等。添加新团队成员时,可以从带有选项的选择框中进行选择。现在,页面按创建日期顺序显示用户,但我需要按层次顺序显示他们(首先是所有董事,然后是研究人员,然后是毕业生,等等)。配置文件的新字段位于函数中。php,代码如下:<!-- ROLE --> <?php $role = get_user_meta($user->ID, \'member_role\', true)