在WordPress主题和插件的开发过程中,经常需要获取当前页面的URL,我们可以使用下面的wordpress内置函数实现。

$current_url = home_url(add_query_arg(array()));

子目录WP的方法

不过可惜的是,如果你的WordPress安装在子目录下,且站点地址也使用子目录(如:wphun.com/wp),那么以上代码就没法正常工作了。以下是针对此缺陷的修正代码,适用范围更加普遍:

global $wp;
$current_url = home_url(add_query_arg(array(),$wp->request));

默认固定链接

如果你的WordPress使用的默认的链接,安装在子目录,站点地址也使用子目录,同时又是使用带 ? 的默认链接,如wphun.com/wp/?p=5,你可以使用以下代码来获取当前页面URL:

global $wp;
$current_url = add_query_arg( $wp->query_string, '', home_url( $wp->request ) );

使用说明

  1. 如果你的WordPress使用的不是默认的固定链接,首页是wphun.com这种形式,推荐使用第一部分的代码;
  2. 如果你的WordPress使用的不是默认的固定链接,首页是wphun.com/wp这种子目录形式,推荐使用第二部分的代码;
  3. 如果你的WordPress使用的是默认的固定链接,首页是wphun.com,文章是www.example.com/?p=4这种形式,推荐使用第一部分的代码;
  4. 如果你的WordPress使用的是默认的固定链接,首页是wphun.com/wp,文章是www.example.com/wp/?p=4这种子目录形式,推荐使用第三部分的代码;