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