Hook to change Logout url

时间:2019-10-04 作者:Tai

我用这个钩子来替换退出地址。不幸的是,这个钩子不起作用,我不明白为什么

add_filter(\'logout_url\', \'my_custom_logout_url\');
        function my_custom_logout_url($force_reauth, $redirect=null){
        $logout_url = wp_nonce_url(site_url(\'logout.php\')."?action=logout", \'log-out\' );
        if (empty($redirect)) $redirect=home_url();
        $logout_url = add_query_arg(\'redirect_to\', urlencode( $redirect )."", $logout_url );
        return $logout_url ;
        }

2 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

无需重新生成注销URL$logout_url 因为传递给函数的第一个参数已经是注销URL

基本上,只需重命名$force_reauth$logout_url 并移除$logout_url = wp_nonce_url( ... );:

function my_custom_logout_url($logout_url, $redirect=null){ // rename the $force_reauth
    // And remove this:
    //$logout_url = wp_nonce_url(site_url(\'logout.php\')."?action=logout", \'log-out\' );
<罢工>其次,你的add_filter() 调用缺少第四个参数(即传递给函数的参数数):

add_filter(\'logout_url\', \'my_custom_logout_url\', 10, 2); // like this
add_filter(\'logout_url\', \'my_custom_logout_url\');        // not this

如果您确实想将注销URL设置为example.com/logout.php (注意logout.php), 那么您的代码实际上是好的(除了add_filter() 上面的内容)。但如果您的代码仍在显示wp-login.php, 然后可能有另一个代码(可能是插件)正在过滤/更改注销URL。在这种情况下,您可以将回调优先级更改为更大的数字,如20:

// The third parameter is the callback priority.
add_filter(\'logout_url\', \'my_custom_logout_url\', 20, 2); // the priority is now 20

SO网友:Gendrith

我创建了一个名为“log-out“”

然后,在页面中注销。php我添加了这个(可以避免cookies行)

wp_logout();
$domain = ($_SERVER[\'HTTP_HOST\'] != \'localhost\') ? $_SERVER[\'HTTP_HOST\'] : false;
setcookie("user_role", \'\', time()-1000, \'/\', $domain, false, true);
setcookie("user_id", \'\', time()-1000, \'/\', $domain, false, true);
setcookie("full_name", \'\', time()-1000, \'/\', $domain, false, true);
wp_redirect(home_url());
希望对你有用

我也找到了,看看那里

How to change the default logout link on WordPress Admin

相关推荐

Login logout below menu bar

我想在菜单上方显示登录/注销链接,因为我的主题没有此功能。在右上角登录/注册,手机版中也应显示相同的内容。我正在使用HAPPYTHEMES的subscribe pro主题。您可以在此处查看演示版本:https://www.happythemes.com/demo/?theme=subscribe-pro