1

我想在登录后为用户显示,而不是默认单词 My Account 我想显示用户名,我尝试了此代码,但它没有显示任何内容!

它似乎无法识别$current_user位于以下文件中的变量:wp-content/themes/themeName/framework/functions/woo-account.php

printf( __( '%s', 'wpdance' ),$current_user->user_lastname);

它是:

printf( __( 'My Account', 'wpdance' ));

我还尝试使用此代码获取所有内容:

<?php global $current_user;
  get_currentuserinfo();

  echo 'Username: ' . $current_user->user_login . "\n";
  echo 'User email: ' . $current_user->user_email . "\n";
  echo 'User level: ' . $current_user->user_level . "\n";
  echo 'User first name: ' . $current_user->user_firstname . "\n";
  echo 'User last name: ' . $current_user->user_lastname . "\n";
  echo 'User display name: ' . $current_user->display_name . "\n";
  echo 'User ID: ' . $current_user->ID . "\n";

?>

但又是空的User first name:User last name:

有人有什么建议或想法吗?

提前谢谢你!

4

2 回答 2

1

试着打电话

global $current_user;
get_currentuserinfo();

printf( __( '%s', 'wpdance' ),$current_user->user_lastname);

请参阅https://codex.wordpress.org/Function_Reference/get_currentuserinfo#Examples

你确定总是设置姓氏吗?$current_user如果$current_user->ID至少返回一个值,您可能可以确保工作正常。

并启用调试wp_config.php可能有助于显示所有通知和错误:

define( 'WP_DEBUG', true );

请参阅https://codex.wordpress.org/Debugging_in_WordPress

于 2016-05-30T08:18:34.033 回答
1

最好的方法是使用wp_get_current_user() (不需要任何全局变量)和一个条件来确保用户已登录:

if ( is_user_logged_in() ) {
    $user_info = wp_get_current_user();
    $user_last_name = $user_info->user_lastname;
    printf( __( '%s', 'wpdance' ), $user_last_name );
}

或全名:

if ( is_user_logged_in() ) {
    $user_info = wp_get_current_user();
    $user_complete_name = $user_info->user_firstname . ' ' . $user_info->user_lastname;
    printf( __( '%s', 'wpdance' ), $user_complete_name );
}

参考:

于 2016-05-30T09:32:33.730 回答