【WordPress】現在のURLを取得する方法と独自のGETパラメータを付与したURLを取得する方法
2018年01月20日2023年10月15日
Wordpressで現在のURLを取得する方法を解説します。
現在開いているURLを取得する
URLを取得する方法は、Wordpressの関数が準備されていますのでそちらを使います。
<?php echo get_the_permalink();?>
パーマリンクの設定どおりURLを出力してくれて便利な関数ですが、独自にGetパラメータをくっつけている場合などは、get_the_permalink()で取得すると取得できないと場合があります。
そんな時は下記で現在のURLを取得することができます。
<?php echo (is_ssl() ? 'https' : 'http') . '://' . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];?>
見ての通り、ちょっと長くなってしまいます。ですので何度も使用する場合は関数化しましょう。
独自関数を作って呼び出す(http・https対応)
独自のGetパラメータなどを使用しない場合は、こちらの関数をつくる必要はありませんが、独自のGetパラメータを付けているWordpressの場合は独自関数を作って呼び出して使うと便利です。
現在のURLを取得する関数
テーマのfunctions.phpに下記関数を記述してください。
<?php
function get_current_link() {
return (is_ssl() ? 'https' : 'http') . '://' . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
}
?>
この関数を呼び出してURLを取得したい場合は、下記のように書きます。
<?php echo get_current_link();?>
パーマリンクを拡張した関数
記事IDを渡してパーマリンクを生成と独自のGetパラメータも一緒に取得したい場合は、下記を使用してください。
テーマのfunctions.phpに下記関数を記述してください。
<?php
function get_the_my_permalink($post = 0, $leavename = false)
{
$parse_url = parse_url(get_the_permalink($post, $leavename));
$url = "{$parse_url['scheme']}://{$parse_url['host']}/{$parse_url['path']}";
$query = isset($_GET) ? $_GET : array();
$parseQuery = isset($parse_url['query']) ? $parse_url['query'] : array();
$queryString = http_build_query(array_replace($parseQuery, $query));
$url .= $queryString ? '?' . $queryString : '';
return $url;
}
?>
上記のプログラムは、パーマリンクのURLを取得して、独自のGetパラメータがない場合は、強制的に付与させています。
この関数を呼び出してURLを取得したい場合は、下記のように書きます。
■現在のURL
<?php echo get_the_my_permalink();?>
■記事を指定して作成したい場合
<?php echo get_the_my_permalink(記事ID);?>
まとめ
Wordpressで現在のURLを取得する方法を解説しました。
通常のURLを取得したければ「get_the_permalink()」で取得できますが、独自のGetパラメータも取得した場合はオリジナル関数を使うと取得できます。
コメント
コメントを残す