シリーズ『WordPressのリンク取得方法』~

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

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



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

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

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

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

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

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

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

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

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

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

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

のようになります。

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

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

とすれば、

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

となります。

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

Get the Current URL in WordPress | WP-Mix
参考
Get the Current URL in WordPress | WP-Mix

WordPressで現在のURLを取得する

Get the Current URL in WordPress | WP-Mix

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

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


開発

WordPressで投稿、ホーム、アーカイブを問わず、現在のURLを取得するには、 $current_url = ( empty( $_SERVER['HTTPS'] ) ? 'http:/…


関連する記事



シリーズ『WordPressのリンク取得方法』



こちらはいかが?


1 件のコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*(必須)

*(必須・表示されません)