前面在寫模版的時候,有朋友要求網站登入後要跳轉的到指定的頁面。這個從前還真沒遇到過。于是就用萬能的搜尋(很少百度)找了下,方法基本上就是一個,代碼如下:
<?php // Fields for redirect function custom_login_fields() { ?> <p><label><strong>Choose your location: </strong> <select name="login_location"> <option value="">Select &hellip;</option> <option value="<?php bloginfo('url'); ?>#banking">Banking</option> <option value="<?php bloginfo('url'); ?>#insurance">Insurance</option> <option value="<?php echo get_permalink(2); ?>">Securities</option> </select> </label> </p><br/> } // Redirect function function location_redirect() { $location = $_POST['login_location']; wp_safe_redirect($location); exit(); } // Add fields to the login form add_action('login_form','custom_login_fields'); // Make sure the redirect happens only if your fields are submitted if ( (isset($_GET['action']) && $_GET['action'] != 'logout') || (isset($_POST['login_location']) && !empty($_POST['login_location'])) ) add_filter('login_redirect', 'location_redirect', 10, 3);
但我試了沒成功,不知道原因出在何處。于是又找了下登入後傳回登入前的頁面,有如下方法:
方法一:
wordpress的安裝檔案中有一個名為“wp_login_url()”的函數,這個函數用來實作登入後頁面跳轉到使用者指定的頁面,它能夠接收一個參數,這個輸入參數的值是可以被通路到的url位址。
通過使用“get_permalink()”作為輸入參數(get_permalink()函數用來擷取目前頁面位址),便可實作登入後頁面自動跳轉到登入前頁面。
代碼如下:
<a title="Login" href="<?php echo wp_login_url(get_permalink()); ?>">Login to view</a>
隻要把上面的代碼複制,放在使用者登入後需要傳回的頁面(即登入前的頁面),這樣就可以了。
方法二:
function back_curPageURL() { $pageURL = 'http'; if ( isset( $_SERVER["HTTPS"] ) AND $_SERVER["HTTPS"] == "on" ) $pageURL .= "s"; $pageURL .= "://"; if ( isset( $_SERVER["SERVER_PORT"] ) AND $_SERVER["SERVER_PORT"] != "80" ) $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; else $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; return $pageURL; } add_filter('login_redirect', ' back_curPageURL ');
把上述代碼加到function.php檔案中。
我看這個方法和前面一個差不多。
于是我改了下,便成了登入後跳轉到指定頁面的方法,這也是一朋友在論壇中回複我的内容,代碼如下:
add_filter('login_redirect', 'new_login_redirect'); function new_login_redirect() { return '登入成功後要跳轉的URL位址';
你們還有更好的方法嘛?介紹來分享下吧。
大家都知道wordpress在正确登入的時候都會跳轉至背景管理頁面,跳轉離開了目前頁面是多麼的痛苦。
那如何讓wordpress在使用者登入的時候直接跳轉到某個頁面或者是跳轉到網站首頁?用下面的方法可以實作讓您的使用者登入後即跳轉到了網站的首頁。
找到您的function.php檔案,在檔案裡面copy下面的代碼:
function my_login_redirect($redirect_to, $request){
if( empty( $redirect_to ) || $redirect_to == ‘wp-admin/’ || $redirect_to == admin_url() )
return home_url(“”);
else
return $redirect_to;
add_filter(“login_redirect”, “my_login_redirect”, 10, 3);
然後儲存并上傳覆寫您的原來function.php檔案,試着去登入下看看。
這裡需要說明的是:代碼雖然給出來了,不過建議大家最好還是能夠讀懂代碼,更要能夠去修改代碼。
關于如何讓使用者登入後跳轉到之前的檢視頁面的方法,我後續給大家放出,這裡先在此停筆哦。
如何聯系我:【萬裡虎】www.bravetiger.cn
【QQ】3396726884 (咨詢問題100元起,幫助解決問題500元起)
【部落格】http://www.cnblogs.com/kenshinobiy/