芝生やDIY等のライフハックやWeb制作情報を発信するメディア

【WordPress】現在値のフルパスURLを1行のphpコードで取得

WordPress2016年8月27日

WordPressで現在値のフルパスURLを1行のphpコードで取得する方法をご紹介します。

OGP設定を最適化するためにページごとにシェアするURLを使い分ける際など、<?php the_permalink() ?>では意図した出力にならない場合も多く、意外と困るポイントです。
<?php the_permalink() ?>はそもそも投稿記事用のURLを出力するためのテンプレートタグなので、例えばカテゴリテンプレートなどには使えなかったりします。

そこで、Web屋の芝生DIYでは以下のphpコードで現在値のURLを取得しています。

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

解説

$_SERVER変数を使って実現しています。$_SERVER変数は配列で構成されており、インデックスを指定することでサーバーに関する様々な情報を取得することが可能です。

プロトコルを取得

プロトコルは$_SERVER変数のインデックスに「HTTPS」を指定することで取得できます。上記の記述では現在値がHTTP領域かSSL領域かを判断し、HTTP領域であれば「http://」、SSL領域であれば「https://」が出力されます。

ホスト名を取得

ホスト名(ドメイン部分)は$_SERVER変数のインデックスに「HTTP_HOST」を指定することで取得できます。

リクエストされたURLを取得

ドメイン以下のURLを取得するには、$_SERVER変数のインデックスに「REQUEST_URI」を指定することで取得できます。

まとめ

WordPressに限らず、phpで構築されているサイトであればご紹介したコードで簡単に現在値URLを取得することが可能です。

ドメイン問わず使える記述方法なので汎用性はとても高いです。ぜひご活用ください。

「WordPress」の他の記事を読む

ページの先頭に戻る