首页 > 解决方案 > Wordpress - 将 wp_redirect url 更改为动态链接

问题描述

我有以下代码检查用户是否已登录,然后将他们重定向到特定的静态页面 -

add_action('wp', 'add_login_check');
function add_login_check()
{
    if ( is_user_logged_in() && is_page( [153] ) ) {
        wp_redirect('https://my.thinkingmachine.co/vallis');
        exit;
    }
}

我想更改它,而不是转到“ https://my.thinkingmachine.co/vallis ”,而是将它们定向到包含其用户名的动态 url,如下所示 -

  $username = $user->user_login;
  return ( '//my.thinkingmachine.co/' . $username . '/' );

如何更改代码以使其重定向到此动态 url?

我试过这个,但它不起作用 -

add_action('wp', 'add_login_check');
function add_login_check()
{
    if ( is_user_logged_in() && is_page( [153] ) ) {
        $username = $user->user_login;
      return ( '//my.thinkingmachine.co/' . $username . '/' );
        exit;
    }
}

谢谢

整个代码是 -

add_action('wp', 'add_login_check');
function add_login_check()
{
    if ( is_user_logged_in() && is_page( [153] ) ) {
        $username = $user->user_login;
        wp_redirect("https://my.thinkingmachine.co/{$username}");
        exit;
    }
}

add_action('wp', 'add_not_login_check');
function add_not_login_check()
{
    if ( !is_user_logged_in() && !is_page( [153] ) ) {
        wp_redirect('https://my.thinkingmachine.co/');
        exit;
    }
}

标签: phpwordpress

解决方案


假设使用这行代码正确获取了用户名:

$username = $user->user_login;

您可以使用以下代码:

function add_login_check()
{
    if ( is_user_logged_in() && is_page( [153] ) ) {
        $username = $user->user_login;
        wp_redirect("https://my.thinkingmachine.co/{$username}");
        exit;
    }
}

如果要在字符串中使用 PHP 变量,则必须对字符串使用双引号并在变量周围使用单括号。


推荐阅读