我目前正在WordPress上建立一个网站。我有一个Logout链接(在...标签内)。当用户点击它时,它应该注销并重定向到当前页面。
我用过:
<a id="logout-submit" href="<?php echo wp_logout_url(get_permalink());?>">Log Out</a>
但这似乎不正常。当我点击链接时,没有任何反应。当我右键单击链接并在新选项卡中打开时,用户将被注销。请告诉我如何纠正这个问题。
提前致谢。
答案 0 :(得分:2)
使用类似的东西:
<?php echo wp_logout_url( $_SERVER['REQUEST_URI'] ); ?>
有效。
答案 1 :(得分:0)
试试这个:
<a id="logout-submit" href="<?php echo wp_logout_url();?>">Log Out</a>
答案 2 :(得分:0)
使用get_permalink()时,需要考虑以下问题。请注意,如果在没有ID参数的帖子页面(索引,存档等)外部使用The Loop,它将返回The Loop中最后一篇文章的URL,而不是当前页面的固定链接。 - https://developer.wordpress.org/reference/functions/get_permalink/
我也在使用:<a href="<?php echo wp_logout_url();?>">Log Out</a>
。它正确回显了正确的注销网址,但不是让我退出,而是获得死亡的白屏。这不是一个普遍存在的问题,只有在尝试注销时才会出现(无论我在哪里注销)。
答案 3 :(得分:0)
<?php
/*
Template Name: RA_Cikis_Yap
File: RA_Cikis_Yap.php
Site: RanaAJANS.com
User: Rana ERDOĞAN & Ümüt DEMİR
Date: 2020.04.20 20:20:20
Page properties -> Template -> RA_Cikis_Yap.php
*/
session_start();
ob_start();
$user_id = get_current_user_id();
# echo $user_id."<br>";
# echo "<pre>";
# var_dump(is_user_logged_in());
# echo "</pre>";
wp_logout();
session_unset();
session_destroy();
wp_destroy_current_session();
wp_clear_auth_cookie();
wp_set_current_user( 0 );
update_user_meta( $user_id, 'session_tokens', mb_strtoupper(bin2hex(random_bytes(20))) ); # Generate random 40 character value
//wp_redirect(site_url());
header( "Refresh: 3; url= ".home_url()."/iletisim/" );
// echo "<meta http-equiv='refresh' content='3; url=https://RanaAJANS.com/iletisim/'>";
?>
<!doctype html>
<html lang="tr">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/2.1.2/sweetalert.min.js"></script>
<style>
.swal-overlay {
background-color: rgba(250, 0, 0, 0.50);
}
.swal-modal {
background-color: rgba(255,255,255,0.99);
border: 3px solid white;
}
</style>
</head>
<body>
<script>
swal({
type: 'error',
icon: "warning",
title: 'Oops...',
text: 'Çıkış Yaptınız!',
button: "Tamam",
className: "swal-overlay",
closeModal: false
})
</script>
</body>
</html>
<?php
ob_end_flush();
exit();
?>