WordPressで現在表示のURLをパラメータを除いて取得する方法

作成日:

WordPressで投稿、ホーム、アーカイブを問わず、現在のURLを取得するには、

PHP
$current_url = ( empty( $_SERVER['HTTPS'] ) ? 'http://' : 'https://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

があるのですが、何だかシンプルじゃ無いなと。

そこでWordPressの関数を用いた方法は無いかなと探してみましたところ、

PHP
global $wp;
$current_url = add_query_arg( $wp->query_string, '', home_url( $wp->request ) );

とすればURLを取得出来るようです。

ただし、このURLにはページ独自のパラメータも付随します。

例えばパーマリンクの設定を

Shell
/%year%/%monthnum%/%postname%/

としていると、取得されるURLは

Shell
https://hogehoge.com/2018/12/post-title?year=2018&monthnum=12&name=post-title

のようになります。

ですので、URLパラメータを除いて取得する場合は、

PHP
global $wp;
$current_url = add_query_arg( $wp->query_string, '', home_url( $wp->request ) );
$current_url = strtok( $current_url, '?' );

とすれば、

Shell
https://hogehoge.com/2018/12/post-title

となります。

あ、でもこの方法だと、検索結果ページの取得URLが「?s=検索ワード」パラメータが除かれるのでホームURLになってしまうな。
もう少し改善が必要ぽい。

favicon
Get the Current URL in WordPress | WP-Mix https://wp-mix.com/get-current-url-wordpress/

WordPressで現在のURLを取得する

物草 灸太郎
物草 灸太郎

WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。

Loading...

コメント

WordPressで現在表示のURLをパラメータを除いて取得する方法(改) – モノグサにお灸 さん
[…] 参考 […]
2018年12月19日 12:48 PM 返信

コメントをどうぞ

  • メールアドレスが公開されることはありません。
  • コメント欄にURLは入力できません。
  • このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシー利用規約が適用されます。