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ファイルにした後に編集すれば大丈夫です。

WordPressテーマ『HIGHLAND』公開しました

WordPressテーマ『HIGHLAND』を公開しました

このブログで紹介しているカスタマイズを、これでもかと盛り込んだ高性能なテーマになっております。商用・非商用問わず無料、是非ご利用ください。

柴田竹思

柴田竹思

日本&ベトナム二拠点生活中のWeb系フリーランス。最近は育児6:仕事4のバランスで生活してます。これでもかってくらい奥さんの尻に敷かれてる座布団系男子です。

プロフィールはこちら