【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を取得することが可能です。
ドメイン問わず使える記述方法なので汎用性はとても高いです。ぜひご活用ください。