有时候我们需要获取每个页面的 URL,但是 WordPress 只有 get_permalink
模板函数能在日志或者静态页面获取当前页面的 URL,而其他页面好像也没有相关的函数,即使有相关的函数,首先都要判断当前是什么页面,然后使用相关的函数,这样非常麻烦。
其实不用找 WordPress 函数,PHP 本身就提供了一些系统变量,通过整合下就能获取当前页面的 URL。
代码语言:javascript复制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 插件中。