功能描述
跳轉用戶到指定的URL,URL 必須是完整的絕對 URL。
使用說明
wp_redirect() 不會自動退出,使用時需要在后面添加退出函數(shù)。如下:
wp_redirect( $location, $status );
exit;
參數(shù)
| 參數(shù) | 數(shù)據(jù)類型 | 是否必需 | 描述 | 默認值 |
|---|---|---|---|---|
| $location | 字符串 | 是 | 用戶將被重定向到的絕對URL | 無 |
| $status | 整數(shù) | 否 | 重定向 HTTP 狀態(tài)碼 | 302 |
返回值
如果 $location 沒有設置,返回false,其他情況下不返回任何值
使用示例
wp_redirect( home_url() );
exit;
也可以跳轉到外部鏈接,或使用301永久永久重定向狀態(tài)碼 :
wp_redirect( 'http://www.example.com', 301 );
exit;
注意:
在HTTP1.1中,302是臨時重定向狀態(tài)碼,如果需要永久重定向,請使用HTTP 301狀態(tài)碼。
wp_safe_redirect 與 wp_redirect 的區(qū)別
wp_safe_redirect 的作用和 wp_redirect 類似,不同的是前者在跳轉之前會檢查要跳轉的 URL 是否為被允許的主機,檢查通過后才跳轉,如果檢查未通過,則該函數(shù)會把用戶跳轉到當前站點的 /wp-admin/ 頁面,這樣的處理可以防止程序把用戶重定向到站外的惡意網(wǎng)址。該函數(shù)僅在后臺的少數(shù)地方使用。
如果需要修改允許 wp_safe_redirect 函數(shù)跳轉的網(wǎng)址,我們可以通過 allowed_redirect_hosts Hook 來修改。如下:
add_filter( 'allowed_redirect_hosts', function ( $hosts ) {
$my_hosts = array(
'blog.example.com',
'codex.example.com',
);
return array_merge( $hosts, $my_hosts );
}; );
相關函數(shù)
wp_sanitize_redirect:對跳轉 URL 消毒。
wp_validate_redirect: 驗證跳轉 URL 是否為允許的 URL。
