is user logged in not working

时间:2013-08-31 作者:David Garcia

我正在创建一个插件,希望检查用户是否登录了run Other函数。

这是我的第一个插件,同时我还在学习如何编程。下面我有一个简单的用户条件,如果用户已登录,并且我还从数组中检索数据,以检查管理员是否在插件选项中选择了“是”,以检查是否有用户登录,然后执行另一个函数。然而,我得到了一个错误Call to undefined function is_user_logged_in() 我想我可能需要将我的条件封装在一个函数中,然后添加一个操作,请有人帮助我。谢谢

/* Logged user conditionals */

$logged = get_option(\'lu_ban_data\');

if ($logged[\'loggedU\'] == \'loggedYes\' && is_user_logged_in() ) {
    lu_ban_detect();
    } else {
    return false;
    }
update好吧我想我成功了

add_action( \'init\', \'lu_user_logged\' );
function lu_user_logged() {
$logged = get_option(\'lu_ban_data\');
echo $logged;
if ($logged[\'loggedU\'] == \'loggedYes\' && is_user_logged_in() ) {
    lu_ban_detect();
    } else {
    return false;
    }
}
这是正确的方式吗?

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

代码的要点是加载lu_ban_detect 在页面的页脚中。然后,该函数根据以下注释将Javascript打印到页脚:

将javascript封装在名为“lu\\u ban\\u detect”的函数中,并将其打印在页面的页脚中

在这种情况下,这不是正确的方法。不鼓励将脚本直接打印到页面,而且代码在我看来过于复杂。

我要做的第一个改变是:

function lu_user_logged() {
  if (is_user_logged_in()) {
    $logged = get_option(\'lu_ban_data\');
    if ($logged[\'loggedU\'] == \'loggedYes\') {
      lu_ban_detect();
    }
  }
}
add_action( \'wp_footer\', \'lu_user_logged\' );
您正在页脚中打印,因此只需钩住wp_footer, 没有必要return 我能说的任何事。我还把is_user_logged_in() 首先,您可以这样保存查询。

但是,如前所述,您可能不应该将脚本直接回显到页面中。

你可以echo 数据输入页面如下:

function lu_user_logged() {
  if (is_user_logged_in()) {
    $logged = get_option(\'lu_ban_data\');
    if ($logged[\'loggedU\'] == \'loggedYes\') {
      lu_ban_detect();
    }
  }
}
add_action( \'wp_enqueue_scripts\', \'lu_user_logged\' );

function lu_ban_detect() {
  wp_localize_script(\'jquery\',\'data\',\'abcd\');
}
第一个参数wp_localize_script 需要是已排队的脚本。

如果需要加载更复杂的Javascript,可能应该registerenqueue A..js 文件

function lu_ban_detect() {
  wp_register_script( \'lu_ban_detect\', \'path/to/js\', array(\'jquery\'), 1, true );
  wp_enqueue_script(\'lu_ban_detect\');
}

结束

相关推荐

Functions.php中的帖子ID错误

我试图在我的函数中执行以下代码。php更改我的wordpress博客的标题。function filter_pagetitle($url) { global $wp_query; $the_post_id = $wp_query->post->ID; $the_post_data = get_post($the_post_id); return $the_post_da