【WordPress】現在のURLを取得する方法と独自のGETパラメータを付与したURLを取得する方法

【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パラメータも取得した場合はオリジナル関数を使うと取得できます。

コメント

コメントを残す

お名前(任意)
コメント:新規