is_user_logged_in() not working in wordpress plugi

2019-09-17 07:27发布

is_user_logged_in() function not working in wordpress plugin Show warning like below:

Fatal error: Call to undefined function is_user_logged_in() in 

How can I use the logic in wordpress plugin?

4条回答
该账号已被封号
2楼-- · 2019-09-17 07:35

Plugins are loaded prior to pluggable.php, which is where is_user_logged_in() is located. Which means the function doesn't exist yet when you're trying to call it. Instead, do this:

add_action('init', 'ajax_auth_init');
function ajax_auth_init()
{
    if(!is_user_logged_in()) return;
    // rest of your code
}
查看更多
闹够了就滚
3楼-- · 2019-09-17 07:43

Try with

$user = wp_get_current_user();
if($user->ID != 0 or $user->ID != null) ...
查看更多
乱世女痞
4楼-- · 2019-09-17 07:45

is_user_logged_in() is located in wp-includes/pluggable.php. So please include this file in your plugin file and check.

查看更多
干净又极端
5楼-- · 2019-09-17 07:58
function example_function() {
    if ( ! is_user_logged_in() ) {
        ajax_auth_init();
    }
}
add_action('init', 'example_function');

EDIT:

is_user_logged_in() is a pluggable function and you could get a fatal error if you call it too early. You can use this function inside your theme files without any additional code. Like:

<?php if ( is_user_logged_in() ) { ?>
    <a href="<?php echo wp_logout_url(); ?>">Logout</a>
<?php } else { ?>
    <a href="/wp-login.php" title="Members Area Login" rel="home">Members Area</a>
<?php } ?>

But inside plugin you should wait for wordpress to be loaded.

P.S. Sorry for my english.

查看更多
登录 后发表回答