常用函数-get_currentuserinfo()
说明
检索当前登录用户的相关信息,并将信息置入$userdata全局变量。函数属性直接映射到数据库(参见 Database Description)中的wp_usrs表格。
同样也将个体属性放置到以下独立全局变量中:
- $user_login
- $user_level
- $user_ID
- $user_email
- $user_url(用户在用户资料中输入的网址)
- $user_pass_md5 (用户密码的md5 hash——一种几乎无法解密(不是完全无法解密)的编码,可比较输入提示口令与实际用户密码的不同)
- $display_name(用户名,根据’How to display name’用户选项结果进行显示)
用法
<?php get_currentuserinfo(); ?>
示例
缺省用法
调用get_currentuserinfo()将当前用户信息放入$userdata,可用成员变量在$userdata中检索用户信息。
<?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"); ?>
Username: Zedd
User email: my@email.com
User level: 10
User first name: John
User last name: Doe
User display name: John Doe
User ID: 1
使用独立全局变量
用户资料大多存放在单个全局变量中,可直接访问。
<?php global $display_name , $user_email; get_currentuserinfo(); echo($display_name . "'s email address is: " . $user_email); ?>
Zedd’s email address is: fake@email.com
注意:$display_name似乎无法在2.5以上版本中运行。$user_login运行良好。
<?php global $user_login , $user_email; get_currentuserinfo(); echo($user_login . "'s email address is: " . $user_email); ?>
参数
该函数不接受任何参数。
检查当前是否有已登录用户,执行以下代码:
<?php global $user_ID; get_currentuserinfo(); if ('' == $user_ID) { //no user logged in } ?>
下面仍然是一个IF STATEMENT示例,用在侧边条中,参照ttp://www.kriesi.at/archives/wordpress-plugin-my-favorite-posts 中的”My Fav”插件。
<?php if ( $user_ID ) { ?> <!-- enter info that logged in users will see --> <!-- in this case im running a bit of php to a plugin --> <?php mfp_display(); ?> <?php } else { ?> <!-- here is a paragraph that is shown to anyone not logged in --> <p>By <a href="<?php bloginfo('url'); ?>/wp-register.php">registering</a>, you can save your favorite posts for future reference.</p> <?php } ?>