PHP 技巧:獲取當前頁面的URL
有時候我們需要獲取每個頁面的URL,但是WordPress只有get_permalink
模板函數能在日誌或者靜態頁面獲取當前頁面的URL,而其他頁面好像也沒有相關的函數,即使有相關的函數,首先都要判斷當前是什麼頁面,然後使用相關的函數,這樣非常麻煩。
其實不用找WordPress 函數,PHP 本身就提供了一些系統變量,通過整合下就能獲取當前頁面的URL。
function wpjam_get_current_page_url(){
$ssl = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? true:false;
$sp = strtolower($_SERVER['SERVER_PROTOCOL']);
$protocol = substr($sp, 0, strpos($sp, '/')) . (($ssl) ? 's' : '');
$port = $_SERVER['SERVER_PORT'];
$port = ((!$ssl && $port=='80') || ($ssl && $port=='443')) ? '' : ':'.$port;
$host = isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
return $protocol . '://' . $host . $port . $_SERVER['REQUEST_URI'];
}
然後使用wpjam_get_current_page_url
就能獲取當前頁面的URL。並且該函數已經整合到WPJAM Basic插件中。