WordPressのループ外で現在のページURLを取得する方法

Web制作
2017.11.27

WordPressで現在のページURLを取得する場合、ループ内であれば以下のように書けば問題なく取得できます。

<?php the_permalink(); ?>

しかし今回は、ループ外で取得する必要がありました。

WordPressの関数をなんか使えばいけるだろうと軽く考えていたんですが、案外と難航したので今後のためにもメモ。

WordPressのループ外で現在のページURLを取得する方法

<?php echo (empty($_SERVER["HTTPS"]) ? "http://" : "https://") . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>

上記のように書けば、現在のページURLのプロトコル(http://またはhttps://)からパスまで取得できます。

またプロトコルから取得する必要がない場合はパスのみ、ホスト名+パスという形で取得することもできます。

現在のページのパスのみ取得する
<?php echo $_SERVER["REQUEST_URI"]; ?>
現在のページのホスト名を取得する
<?php echo $_SERVER["HTTP_HOST"]; ?>
現在のページのホスト名+パスを取得する
<?php echo $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>
現在のページのプロトコル+ホスト名を取得する
<?php echo (empty($_SERVER["HTTPS"]) ? "http://" : "https://") . $_SERVER["HTTP_HOST"]; >?>

これはWordPressだとhome_url();で取得できるので使う必要はないと思います。

WordPressじゃなくても使えます

一応言っておくと、上記はWordPressの関数ではないのでPHPで作成したWebページであれば使えます。

もしHTMLサイトで使いたい場合は、使いたいHTMLファイルの拡張子を「.html」から「.php」に変換してPHPファイルにした後に編集すれば大丈夫です。

この記事を書いた人
柴田 竹思

フリーランスWebディレクター/デザイナー。Webデザイン事務所Bamboo Works代表。中小企業・個人事業主のWebサイト制作のほか、官公庁や大手企業のプロジェクトにも携わる。日本とベトナムの二拠点生活中。