2015-04-12 111 views
-1

头退出按钮在我Wordpress site,我在右上角报头中的登录/注销按钮(在意大利语它会是Accedi/ESCI),使用此代码创建:登录/在WordPress的

add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2); 
function add_login_logout_link($items, $args) { 
    ob_start(); 
    wp_loginout('index.php'); 
    $loginoutlink = ob_get_contents(); 
    ob_end_clean(); 
    $items .= '<li>'. $loginoutlink .'</li>'; 
return $items; 
} 

登录URL,它后点击创建为:

/wp-login.php?redirect_to=index.php

因为我有会员插件,我需要保持其重定向消息后登录规则(特定页面,我选择,让我们说“登录欢迎页面”),并为要工作,我需要保持:

/wp-login.php

我试图删除wp_loginout('index.php');,但“登录/注销”按钮将从标题中消失。

注销此代码后,带我回家(这就是我想要的!),但如果我只关闭“index.php”,注销后没有重定向。

你知道我该如何解决这个问题?

非常感谢。

+0

我的建议是设置当前的URL部分,比如:'新闻/ 1'到'$ _SESSION'或'$ _COOKIE'当用户点击退出按钮和注销重定向后保存的值。 – sitilge

回答

0

如果你想将用户重定向到他们在当前页面:

wp_loginout($_SERVER['REQUEST_URI']);

如果你想引导他们到指定的页面,您可以更改$重定向参数去点到任何你想要的页面。您可以使用get_permalink($post_id)作为前端页面。

wp_loginout(get_permalink($post_id));

https://codex.wordpress.org/Function_Reference/wp_loginout https://codex.wordpress.org/Function_Reference/get_permalink

重定向到登录页面不同VS注销
只是包装在is_user_logged_in()条件。看起来像:

if (is_user_logged_in()) { 
    wp_loginout(Go Here if logged in); 
} else { 
    wp_loginout(Go here if logged out); 
} 
+0

这真是太棒了。它工作完美。非常感谢。我选择'wp_loginout(get_permalink(get_page_by_title('La mia pagina')));'所以他们重定向到特定页面。有没有办法将注销重定向到主页(当然保持登录如上) –

+0

当然,你只需要将它包装在一个条件。我已经在上面更新了我的答案。你介意标记是否正确? – Dsmart

+0

感谢您答复配偶。我不确定在哪里以及如何添加此行。从'add_filter('wp_nav_menu_items','add_login_logout_link',10,2)开始; function add_login_logout_link($ items,$ args){ ob_start(); wp_loginout(get_permalink(get_page_by_title('La mia pagina'))); $ loginoutlink = ob_get_contents(); ob_end_clean(); $ items。='

  • '。 $ loginoutlink。'
  • '; 返回$ items; }'当我试图包装'is_user_logged_in()'我的网站说“在functions.php中出现意外错误”。你能介绍一下如何完整的代码吗?谢谢! –