2013-04-11 2 views
0

우리는 2 개 언어 Wordpress 테마를 가지고 있습니다. 영어 버전은입니다 mydomain.com와 체코 버전은 로 리디렉션됩니다 사용자가 mydomain.com/login에 로그인 할 mydomain.com/cs/로그인시 Wordpress 리다이렉션

에서 가상 디렉터리에 아래 코드 (페이지 이름)에 지정된대로 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() ))); ?>

홈 _url은 사이트의 전체 URL을 반환합니다. 어떤 아이디어를 어떻게 현재 디렉토리 (/ 로그인) 이스케이프 리디렉션을 달성 할 수 있습니까?

답변

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); 
+0

위대한 물건 doublesharp! 나는 코드의 현재 스 니펫을 너의 코드로 바꿨고 명백한 오류는 없었지만 페이지는/cs/페이지로 이동하지 않았다. 나는 또한 'get_permalink'가 현재 페이지의 퍼머 링크를 얻는다는 것을 깨달았다. 어떤 아이디어? – JoeW

+1

홈페이지 URL 또는 프로필 페이지에 '/ cs /'를 추가 하시겠습니까? 프로필 페이지 인 경우 집 대신 값을 사용하도록 코드를 수정하면됩니다. ['get_permalink()'] (http://codex.wordpress.org/Function_Reference/get_permalink)는 현재 페이지를 기본값으로하지만, ID를 전달하는 한 아무런 작업을 할 수 있습니다. -'$ 그러나 edd_options [ 'profile_page']'는 ID가 아니라면 문제가됩니다. – doublesharp

+0

프로필 페이지를 사용하도록 코드가 업데이트되었지만 '$ edd_options ['profile_page ']'가 작동하려면 페이지 ID 여야합니다. – doublesharp