我们有一个双语的Wordpress主题。英文版本位于 mydomain.com ,捷克版本位于虚拟目录 mydomain.com/cs/
当用户登录 mydomain.com/login 时,会将其重定向到 mydomain.com/dashboard ,如下面的代码所示(即页面名称) 。我需要使用 mydomain.com/cs/login 登录的用户才能登录 mydomain.com/cs/dashboard
该功能使用的代码如下:
<?php wp_login_form( apply_filters( 'atcf_shortcode_profile_login_args', array(
'redirect' => isset ( $edd_options[ 'profile_page' ] ) ? get_permalink( $edd_options[ 'profile_page' ] ) : home_url()
) ) ); ?>
home_url 是返回网站完整网址的内容。有什么想法我可以通过转义当前目录(/ login)来实现重定向吗?
答案 0 :(得分:1)
您可以检查$_SERVER["REQUEST_URI"]
值,看它是否以/cs/
开头,然后相应地动态更新个人资料页面值。
// The current URI (does not incude host/domain)
$uri = $_SERVER["REQUEST_URI"];
// The home URL
$redirect = home_url();
// $edd_options[ 'profile_page' ] must return the page ID for get_permalink to work
if ( isset( $edd_options[ 'profile_page' ] ) ) {
// The profile URL.
$profile_page_id = $edd_options[ 'profile_page' ];
$redirect = get_permalink( $profile_page_id );
// Check if the URI starts with /cs/
if ( strpos( $uri, '/cs/' ) == 0 ){
// Explode into an array
$url_array = explode( '/', $profile_page );
// Insert /cs/ into array
$url_array = array_slice($url_array, 0, 3, true) +
array("x"=>"cs") +
array_slice($url_array, 3, count($url_array)-3, true);
// Implode back to a string
$redirect = implode( '/', $url_array );
}
}
// Set up params to send to login form
$args = apply_filters( 'atcf_shortcode_profile_login_args', array( 'redirect' => $redirect ) );
wp_login_form( $args );