前面在寫模版的時(shí)候,有朋友要求網(wǎng)站登錄后要跳轉(zhuǎn)的到指定的頁(yè)面。這個(gè)從前還真沒遇到過。于是就用萬能的搜索(很少百度)找了下,方法基本上就是一個(gè),代碼如下:
<?php
// Fields for redirect function custom_login_fields() {
?>
<p><label><strong>Choose your location: </strong>
<select name="login_location">
<option value="">Select …</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);
?>
但我試了沒成功,不知道原因出在何處。于是又找了下登錄后返回登錄前的頁(yè)面,有如下方法:
方法一:
wordpress的安裝文件中有一個(gè)名為“wp_login_url()”的函數(shù),這個(gè)函數(shù)用來實(shí)現(xiàn)登錄后頁(yè)面跳轉(zhuǎn)到用戶指定的頁(yè)面,它能夠接收一個(gè)參數(shù),這個(gè)輸入?yún)?shù)的值是可以被訪問到的url地址。
通過使用“get_permalink()”作為輸入?yún)?shù)(get_permalink()函數(shù)用來獲取當(dāng)前頁(yè)面地址),便可實(shí)現(xiàn)登錄后頁(yè)面自動(dòng)跳轉(zhuǎn)到登錄前頁(yè)面。
代碼如下:
<a title="Login" href="<?php echo wp_login_url(get_permalink()); ?>">Login to view</a>
只要把上面的代碼復(fù)制,放在用戶登錄后需要返回的頁(yè)面(即登錄前的頁(yè)面),這樣就可以了。
方法二:
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文件中。
我看這個(gè)方法和前面一個(gè)差不多。
于是我改了下,便成了登錄后跳轉(zhuǎn)到指定頁(yè)面的方法,這也是一朋友在論壇中回復(fù)我的內(nèi)容,代碼如下:
add_filter('login_redirect', 'new_login_redirect');
function new_login_redirect()
{
return '登錄成功后要跳轉(zhuǎn)的URL地址';
}
更多信息請(qǐng)查看IT技術(shù)專欄