2013-04-11 89 views
0

我們有一個雙語的WordPress主題。英文版本在mydomain.com和捷克的版本是在一個虛擬目錄在mydomain.com/cs/登錄時的Wordpress重定向

當用戶在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是什麼返回該網站的完整URL。任何想法如何通過轉義當前目錄(/ login)來實現重定向?

回答

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 2013-04-11 17:45:02

+1

您是否試圖將'/ cs /'添加到家庭網址或個人資料頁面?如果是配置文件頁面,您只需修改代碼以使用其值而不是家庭。 ['get_permalink()'](http://codex.wordpress.org/Function_Reference/get_permalink)默認爲當前頁面,但只要您傳入ID,就可以用於任何事物 - 不確定'$然而,edd_options ['profile_page']'如果不是ID,那就是問題所在。 – doublesharp 2013-04-11 18:53:41

+0

我更新了代碼以使用配置文件頁面,但$ edd_options ['profile_page']'必須是它的工作頁面ID。 – doublesharp 2013-04-11 18:59:16