前面在寫模版的時候,有朋友要求網站登錄後要跳轉的到指定的頁面。這個從前還真沒遇到過。於是就用萬能的搜索 (很少百度) 找了下,方法基本上就是一個,代碼如下:

<?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/>
<?php
} // 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%20echo%20wp_login_url(get_permalink());%20?>">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 地址';
}

你們還有更好的方法嘛?介紹來分享下吧。