2016-01-22 81 views
1

我從短代碼中發現了這一點,並且我們在使用此函數的加載時間方面存在一些問題。我想知道是否有一種方法來進一步優化,或者可能使用PHP重定向而不是JavaScript?優化重定向代碼

function gdp_mss_after_login() { 
$user = wp_get_current_user(); 

if($user && is_object($user) && is_a($user, 'WP_User')) { 

    $user_level = get_user_meta($user->ID, 'gdp_level', true); 

    ob_start(); 

    if (!empty($user_level)) { 
     $post_id = get_option('gdp_mss_course_level_' . $user_level); 
     $url = esc_url(get_permalink($post_id)); 
     ?> 
     <script type="text/javascript"> 
      window.location = '<?php echo $url; ?>'; 
     </script> 
     <?php 
    } 

} 
return ob_get_clean(); 
} 
add_shortcode('gdp_mss_login_redirect', 'gdp_mss_after_login'); 
+0

爲什麼不wp_redirect()? –

回答

0

使用wp_redirect()

function gdp_mss_after_login() { 
    $user = wp_get_current_user(); 
    if($user && is_object($user) && is_a($user, 'WP_User')) { 
    $user_level = get_user_meta($user->ID, 'gdp_level', true); 
    if (!empty($user_level)) { 
     $post_id = get_option('gdp_mss_course_level_' . $user_level); 
     $url = esc_url(get_permalink($post_id)); 
     wp_redirect($url); 
    }else{ 
     return false; 
    } 
    } 
} 
add_shortcode('gdp_mss_login_redirect', 'gdp_mss_after_login'); 
+0

謝謝拉克什。似乎沒有工作。出於某種原因的重定向不會發生。我錯過了什麼? – Francis