[英]Wordpress: Fatal error: Call to undefined function is_user_logged_in()
我在wordpress頁面加載一個PHP腳本,但是當腳本運行時,我得到了這個:
Fatal error: Call to undefined function is_user_logged_in()
它嘗試運行的代碼:
<?php
if ( is_user_logged_in() == true ) {
/* Some code */
} else {
/* Some other code */
}
?>
我試着尋找答案但我找不到合適的解決方案。
從我在互聯網上找到的,我的腳本在wordpress之外運行,這就是為什么它找不到該功能。
也許您過早地運行代碼如下所述: https : //wordpress.org/support/topic/fatal-error-call-to-undefined-function-is_user_logged_in
問題是is_user_logged_in是一個可插入的函數,因此在調用此插件邏輯后加載。 解決方案是確保您不要過早地調用它。
他的解決方案是將代碼包裝在另一個在init上調用的函數中,並且可以放在functions.php文件中:
function your_login_function()
{
if ( is_user_logged_in() == true ) {
/* Some code */
} else {
/* Some other code */
}
}
add_action('init', 'your_login_function');
require_once( wp_normalize_path(ABSPATH).'wp-load.php');
class Your_Plugin_Class {
private $is_user_logged_in;
add_action('init', function(){
$this-> is_user_logged_in = is_user_logged_in();
echo 'is_user_logged_in'.$this->is_user_logged_in;
});
add_filter('woocommerce_billing_fields-2',array( $this, 'add_billing_field' ));
}
public function add_billing_field( $fields = array() ) {
if ( $this->is_user_logged_in ){
echo 'add_billing_field'.$this->is_user_logged_in;
return $fields;
}else{
echo 'add_billing_field'.$this->is_user_logged_in;
}
}
}
我有我的答案。
我需要將這行代碼添加到我的php腳本中:
require_once("path/to/wordpress/wp-load.php");
這就是訣竅。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.