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 插件中。

热门文章