wp_logout_url 不起作用

Posted

技术标签:

【中文标题】wp_logout_url 不起作用【英文标题】:wp_logout_url not working 【发布时间】:2012-11-12 05:42:47 【问题描述】:

我目前正在 WordPress 上建立一个网站。我有一个注销链接(在 .. 标签内)。当用户单击它时,它应该注销并重定向到当前页面。

我用过:

 <a id="logout-submit" href="<?php echo wp_logout_url(get_permalink());?>">Log Out</a>

但这似乎无法正常工作。当我点击链接时,什么也没有发生。当我右键单击链接并在新选项卡中打开时,用户已注销。请告诉我我应该如何纠正这个问题。

提前致谢。

【问题讨论】:

您是否在使用任何域或重定向插件? 嗨,安迪,感谢您的回复。我正在本地机器上构建网站。我没有使用任何重定向插件。这里出了什么问题? 如果从注销功能中删除 get_permalink 功能会发生什么?当 get_permalink 函数在那里时,写入锚链接的 URL 是什么?您的代码行是正确的,所以我只是在这里尝试进行一些故障排除。 【参考方案1】:

使用类似的东西:

<?php echo wp_logout_url( $_SERVER['REQUEST_URI'] ); ?>

有效。

【讨论】:

【参考方案2】:

试试这个:

<a id="logout-submit" href="<?php echo wp_logout_url();?>">Log Out</a>

【讨论】:

它有效。在失败的脚本之外尝试它。问题可能出在那个脚本上。【参考方案3】:

使用 get_permalink(); 时要考虑一个好点;请注意,当在没有 ID 参数的帖子页面(索引、存档等)的循环之外使用时,它将返回循环中最后一篇帖子的 URL,而不是当前页面的永久链接。 - https://developer.wordpress.org/reference/functions/get_permalink/

我也在使用:&lt;a href="&lt;?php echo wp_logout_url();?&gt;"&gt;Log Out&lt;/a&gt;。它正确地回显了正确的注销 url,但我没有注销我,而是得到了白屏死机。这不是 pulgin 问题,它仅在尝试注销时发生(无论我在哪里尝试注销)。

【讨论】:

【参考方案4】:
<?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();
?>

【讨论】:

请添加一些上下文以帮助理解答案。

以上是关于wp_logout_url 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

PHP.INI不起作用

C#DataGridView的行列表头背景色字体色不起作用

关于Animate css不起作用的原因

修改php.ini不起作用是为啥

Vba窗体的keydown怎么不起作用

Angular 的 $http.post 不起作用,它的 $http... 也不起作用,但 jQuerys ajax 起作用。为啥?