我需要创建这样的东西:
如果是第一次登录则显示:[某事]
如果是第二次登录则显示:[something2]
如果是第三次登录则显示:[something3]
因为我需要在每次登录时在帖子中显示不同的消息,这可能吗?
最佳答案
这当然是可行的,您可以尝试跟踪 cookie,但从长远来看,这会变得非常乏味且不准确。
您可能希望使用update_user_meta()
来跟踪和增加自定义用户元字段。与 wp_login
相关的功能用户登录后触发的钩子(Hook)。
此外,您还需要阅读 add_shortcode()
函数来输出你想要的内容,但是这样的东西足以让你开始。它会跟踪他们登录的次数,以及您放置 [login_content]
的位置 - 它将根据 $login_amount
的值输出相应的文本。
add_action( 'wp_login', 'track_user_logins', 10, 2 );
function track_user_logins( $user_login, $user ){
if( $login_amount = get_user_meta( $user->id, 'login_amount', true ) ){
// They've Logged In Before, increment existing total by 1
update_user_meta( $user->id, 'login_amount', ++$login_amount );
} else {
// First Login, set it to 1
update_user_meta( $user->id, 'login_amount', 1 );
}
}
add_shortcode( 'login_content', 'login_content' );
function login_content( $atts ){
if( is_user_logged_in() ){
// Get current total amount of logins (should be at least 1)
$login_amount = get_user_meta( get_current_user_id(), 'login_amount', true );
// return content based on how many times they've logged in.
if( $login_amount == 1 ){
return 'Welcome, this is your first time here!';
} else if( $login_amount == 2 ){
return 'Welcome back, second timer!';
} else if( $login_amount == 3 ){
return 'Welcome back, third timer!';
} else {
return "Geez, you have logged in a lot, $login_amount times in fact...";
}
}
}
您应该能够将其放入您的 functions.php
文件中。
关于wordpress - 检查第一次登录wordpress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50183646/