Wordpress - How to get URL of current page displayed?

get_permalink() is only really useful for single pages and posts, and only works inside the loop.

The simplest way I've seen is this:

global $wp;
echo home_url( $wp->request )

$wp->request includes the path part of the URL, eg. /path/to/page and home_url() outputs the URL in Settings > General, but you can append a path to it, so we're appending the request path to the home URL in this code.

Note that this probably won't work with Permalinks set to Plain, and will leave off query strings (the ?foo=bar part of the URL).

To get the URL when permalinks are set to plain you can use $wp->query_vars instead, by passing it to add_query_arg():

global $wp;
echo add_query_arg( $wp->query_vars, home_url() );

And you could combine these two methods to get the current URL, including the query string, regardless of permalink settings:

global $wp;
echo add_query_arg( $wp->query_vars, home_url( $wp->request ) );

You may use the below code to get the whole current URL in WordPress:

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

This will show the full path, including query parameters.


Why not just use?

get_permalink(get_the_ID());