Skip to content

Instantly share code, notes, and snippets.

Last active December 3, 2022 16:08
  • Star 13 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save leereamsnyder/fac3b9ccb6b99ab14f36 to your computer and use it in GitHub Desktop.
In WordPress, get current URL including query string
Re-use some existing WordPress functions so you don't have to write a bunch of raw PHP to check for SSL, port numbers, etc
Place in your functions.php (or re-use in a plugin)
If you absolutely don't need or want any query string, use home_url(add_query_arg(array(),$wp->request));
Hat tip to:
* Build the entire current page URL (incl query strings) and output it
* Useful for social media plugins and other times you need the full page URL
* Also can be used outside The Loop, unlike the_permalink
* @returns the URL in PHP (so echo it if it must be output in the template)
* Also see the_current_page_url() syntax that echoes it
if ( ! function_exists( 'get_current_page_url' ) ) {
function get_current_page_url() {
global $wp;
return add_query_arg( $_SERVER['QUERY_STRING'], '', home_url( $wp->request ) );
* Shorthand for echo get_current_page_url();
* @returns echo'd string
if ( ! function_exists( 'the_current_page_url' ) ) {
function the_current_page_url() {
echo get_current_page_url();
Copy link

Am I the only one that missing something or
echo home_url( add_query_arg( null, null ));
Does not work as intended, on subdomains the subdomain get repeated.
add_query_arg( $_SERVER['QUERY_STRING'], '', home_url( $wp->request ) )
Last slash get missing, might corrupt endpoints url:s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment