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

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

WordPressで現在のページURLを取得する場合、ループ内であれば

<?php the_permalink(); ?>

で問題なく取得できます。

しかし今回は、ループ外で取得する必要がありました。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系フリーランス。有名企業から個人事業まで、いろんなウェブサイトを制作してます。これまで400弱くらい作りました。一年中WordPressばっかりいじってます。

プロフィールはこちら