如何自定义分配到wordpress管理栏注销的链接

时间:2016-09-01 07:32:49

标签: php wordpress

我想将条件链接分配给Wordpress顶级管理栏" Logout"。在哪个文件中我可以为此设置条件。实际上,我正在创建会员登录门户。为此,我需要将非管理员用户分配到不同的登录页面,而不是 wp-login.php 页面。例如:

<?php if(user == 'admin'): ?>
<a href="http://mysite/wp-login.php">Logout</a>
<?php } else { ?>
<a href="http://mysite/members.php">Logout</a>
<?php } ?>

任何帮助都会受到鼓舞。!!

1 个答案:

答案 0 :(得分:0)

尝试使用以下代码

/**
* Sets the custom cookie with the redirect URL
*/
function wh_set_logout_url_cookie() {

    if( !is_user_logged_in() ) return false;

    global $current_user;
    //getting current user role
    $user_roles = $current_user->roles;
    $user_role = array_shift($user_roles);

    $exists = $_COOKIE['the_logout_url'];

    if( empty( $exists ) ) {
        switch ($user_role) {
            case 'administrator':
                $expire = time() + ( 86400 * 7); 
                @setcookie('the_logout_url', 'your-url', $expire);
                break;
            case 'editor':
                $expire = time() + ( 86400 * 7); 
                @setcookie('the_logout_url', 'your-url', $expire);
                break;
            default:
                break;
        }
    }
}
add_action( 'init', 'wh_set_logout_url_cookie');

/**
 * Applies the URL saved in the cookie to the wp_logout_url for redirect
*/
function wh_logout_redirect_url( $logouturl ) {

    $redirect = $_COOKIE['the_logout_url']; 

    if( $redirect ) //redirect to the custom set url
        return $logouturl . '&amp;redirect_to=' . urlencode( $redirect );

    //redirect to homepage
    return $logouturl . '&amp;redirect_to=' . urlencode( get_option( 'siteurl' ) );

}
add_filter('logout_url', 'wh_logout_redirect_url', 10, 2);

your-url替换为您的自定义网址。