获取函数内的user_id

时间:2017-04-17 作者:kiarashi

我想创建一个简单的函数来获取用户的id,这取决于我们在WP中所处的页面。

function wp_user_id( $user ) {  

        if ( is_page_template( \'page-recipes.php\' ) ) {     
            $user = get_current_user_id();          
         elseif( is_singular() ) {
            $user = get_the_author_meta( \'ID\' );
        } else {
            $user = $user;
        }

        return $user;   

    }
当我在一个单独的页面上并且在代码中只使用wp\\u user\\u id()时,我会得到一个错误Missing argument 1 for wp_user_id() 我想让它$user = get_the_author_meta( \'ID\' );

你知道我做错了什么吗?

1 个回复
SO网友:Swen

函数需要输入参数$user 为了工作。

如果你只是打电话wp_user_id() 没有任何参数,它将返回一个错误。

解决方案是$user 默认值,使参数可选。

function wp_user_id( $user = NULL ) { // Give $user a default value of NULL

    if ( empty($user) ) { // check if $user has a non-empty value
        if ( is_page_template( \'page-recipes.php\' ) ) {
            $user = get_current_user_id();
        } else if ( is_singular() ) {
            $user = get_the_author_meta( \'ID\' );
        }
    }

    return $user;

}
编辑:我刚刚意识到$user 在示例函数中,参数实际上是无意义的。您可以完全删除它。

function wp_user_id() {

    if ( is_page_template( \'page-recipes.php\' ) ) {
        $user = get_current_user_id();
    } else if ( is_singular() ) {
        $user = get_the_author_meta( \'ID\' );
    }

    if ( isset($user) ) { // check if $user is set
        return $user;
    }

}