代码的要点是加载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,可能应该register 和enqueue 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\');
}