get_pagenum_link

The timeline below displays how wordpress function get_pagenum_link has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.4

/**
 * Retrieves the link for a page number.
 *
 * @since 1.5.0
 *
 * @global WP_Rewrite $wp_rewrite WordPress rewrite component.
 *
 * @param int  $pagenum Optional. Page number. Default 1.
 * @param bool $escape  Optional. Whether to escape the URL for display, with esc_url().
 *                      If set to false, prepares the URL with sanitize_url(). Default true.
 * @return string The link URL for the given page number.
 */
function get_pagenum_link($pagenum = 1, $escape = true)
{
    global $wp_rewrite;
    $pagenum = (int) $pagenum;
    $request = remove_query_arg('paged');
    $home_root = parse_url(home_url());
    $home_root = isset($home_root['path']) ? $home_root['path'] : '';
    $home_root = preg_quote($home_root, '|');
    $request = preg_replace('|^' . $home_root . '|i', '', $request);
    $request = preg_replace('|^/+|', '', $request);
    if (!$wp_rewrite->using_permalinks() || is_admin()) {
        $base = trailingslashit(get_bloginfo('url'));
        if ($pagenum > 1) {
            $result = add_query_arg('paged', $pagenum, $base . $request);
        } else {
            $result = $base . $request;
        }
    } else {
        $qs_regex = '|\?.*?$|';
        preg_match($qs_regex, $request, $qs_match);
        $parts = array();
        $parts[] = untrailingslashit(get_bloginfo('url'));
        if (!empty($qs_match[0])) {
            $query_string = $qs_match[0];
            $request = preg_replace($qs_regex, '', $request);
        } else {
            $query_string = '';
        }
        $request = preg_replace("|{$wp_rewrite->pagination_base}/\\d+/?\$|", '', $request);
        $request = preg_replace('|^' . preg_quote($wp_rewrite->index, '|') . '|i', '', $request);
        $request = ltrim($request, '/');
        if ($wp_rewrite->using_index_permalinks() && ($pagenum > 1 || '' !== $request)) {
            $parts[] = $wp_rewrite->index;
        }
        $parts[] = untrailingslashit($request);
        if ($pagenum > 1) {
            $parts[] = $wp_rewrite->pagination_base;
            $parts[] = $pagenum;
        }
        $result = user_trailingslashit(implode('/', array_filter($parts)), 'paged');
        if (!empty($query_string)) {
            $result .= $query_string;
        }
    }
    /**
     * Filters the page number link for the current request.
     *
     * @since 2.5.0
     * @since 5.2.0 Added the `$pagenum` argument.
     *
     * @param string $result  The page number link.
     * @param int    $pagenum The page number.
     */
    $result = apply_filters('get_pagenum_link', $result, $pagenum);
    if ($escape) {
        return esc_url($result);
    } else {
        return sanitize_url($result);
    }
}

WordPress Version: 6.2

/**
 * Retrieves the link for a page number.
 *
 * @since 1.5.0
 *
 * @global WP_Rewrite $wp_rewrite WordPress rewrite component.
 *
 * @param int  $pagenum Optional. Page number. Default 1.
 * @param bool $escape  Optional. Whether to escape the URL for display, with esc_url().
 *                      If set to false, prepares the URL with sanitize_url(). Default true.
 * @return string The link URL for the given page number.
 */
function get_pagenum_link($pagenum = 1, $escape = true)
{
    global $wp_rewrite;
    $pagenum = (int) $pagenum;
    $request = remove_query_arg('paged');
    $home_root = parse_url(home_url());
    $home_root = isset($home_root['path']) ? $home_root['path'] : '';
    $home_root = preg_quote($home_root, '|');
    $request = preg_replace('|^' . $home_root . '|i', '', $request);
    $request = preg_replace('|^/+|', '', $request);
    if (!$wp_rewrite->using_permalinks() || is_admin()) {
        $base = trailingslashit(get_bloginfo('url'));
        if ($pagenum > 1) {
            $result = add_query_arg('paged', $pagenum, $base . $request);
        } else {
            $result = $base . $request;
        }
    } else {
        $qs_regex = '|\?.*?$|';
        preg_match($qs_regex, $request, $qs_match);
        if (!empty($qs_match[0])) {
            $query_string = $qs_match[0];
            $request = preg_replace($qs_regex, '', $request);
        } else {
            $query_string = '';
        }
        $request = preg_replace("|{$wp_rewrite->pagination_base}/\\d+/?\$|", '', $request);
        $request = preg_replace('|^' . preg_quote($wp_rewrite->index, '|') . '|i', '', $request);
        $request = ltrim($request, '/');
        $base = trailingslashit(get_bloginfo('url'));
        if ($wp_rewrite->using_index_permalinks() && ($pagenum > 1 || '' !== $request)) {
            $base .= $wp_rewrite->index . '/';
        }
        if ($pagenum > 1) {
            $request = ((!empty($request)) ? trailingslashit($request) : $request) . user_trailingslashit($wp_rewrite->pagination_base . '/' . $pagenum, 'paged');
        }
        $result = $base . $request . $query_string;
    }
    /**
     * Filters the page number link for the current request.
     *
     * @since 2.5.0
     * @since 5.2.0 Added the `$pagenum` argument.
     *
     * @param string $result  The page number link.
     * @param int    $pagenum The page number.
     */
    $result = apply_filters('get_pagenum_link', $result, $pagenum);
    if ($escape) {
        return esc_url($result);
    } else {
        return sanitize_url($result);
    }
}

WordPress Version: 6.1

/**
 * Retrieves the link for a page number.
 *
 * @since 1.5.0
 *
 * @global WP_Rewrite $wp_rewrite WordPress rewrite component.
 *
 * @param int  $pagenum Optional. Page number. Default 1.
 * @param bool $escape  Optional. Whether to escape the URL for display, with esc_url(). Defaults to true.
 *                      Otherwise, prepares the URL with sanitize_url().
 * @return string The link URL for the given page number.
 */
function get_pagenum_link($pagenum = 1, $escape = true)
{
    global $wp_rewrite;
    $pagenum = (int) $pagenum;
    $request = remove_query_arg('paged');
    $home_root = parse_url(home_url());
    $home_root = isset($home_root['path']) ? $home_root['path'] : '';
    $home_root = preg_quote($home_root, '|');
    $request = preg_replace('|^' . $home_root . '|i', '', $request);
    $request = preg_replace('|^/+|', '', $request);
    if (!$wp_rewrite->using_permalinks() || is_admin()) {
        $base = trailingslashit(get_bloginfo('url'));
        if ($pagenum > 1) {
            $result = add_query_arg('paged', $pagenum, $base . $request);
        } else {
            $result = $base . $request;
        }
    } else {
        $qs_regex = '|\?.*?$|';
        preg_match($qs_regex, $request, $qs_match);
        if (!empty($qs_match[0])) {
            $query_string = $qs_match[0];
            $request = preg_replace($qs_regex, '', $request);
        } else {
            $query_string = '';
        }
        $request = preg_replace("|{$wp_rewrite->pagination_base}/\\d+/?\$|", '', $request);
        $request = preg_replace('|^' . preg_quote($wp_rewrite->index, '|') . '|i', '', $request);
        $request = ltrim($request, '/');
        $base = trailingslashit(get_bloginfo('url'));
        if ($wp_rewrite->using_index_permalinks() && ($pagenum > 1 || '' !== $request)) {
            $base .= $wp_rewrite->index . '/';
        }
        if ($pagenum > 1) {
            $request = ((!empty($request)) ? trailingslashit($request) : $request) . user_trailingslashit($wp_rewrite->pagination_base . '/' . $pagenum, 'paged');
        }
        $result = $base . $request . $query_string;
    }
    /**
     * Filters the page number link for the current request.
     *
     * @since 2.5.0
     * @since 5.2.0 Added the `$pagenum` argument.
     *
     * @param string $result  The page number link.
     * @param int    $pagenum The page number.
     */
    $result = apply_filters('get_pagenum_link', $result, $pagenum);
    if ($escape) {
        return esc_url($result);
    } else {
        return sanitize_url($result);
    }
}

WordPress Version: 5.5

/**
 * Retrieves the link for a page number.
 *
 * @since 1.5.0
 *
 * @global WP_Rewrite $wp_rewrite WordPress rewrite component.
 *
 * @param int  $pagenum Optional. Page number. Default 1.
 * @param bool $escape  Optional. Whether to escape the URL for display, with esc_url(). Defaults to true.
 *                      Otherwise, prepares the URL with esc_url_raw().
 * @return string The link URL for the given page number.
 */
function get_pagenum_link($pagenum = 1, $escape = true)
{
    global $wp_rewrite;
    $pagenum = (int) $pagenum;
    $request = remove_query_arg('paged');
    $home_root = parse_url(home_url());
    $home_root = isset($home_root['path']) ? $home_root['path'] : '';
    $home_root = preg_quote($home_root, '|');
    $request = preg_replace('|^' . $home_root . '|i', '', $request);
    $request = preg_replace('|^/+|', '', $request);
    if (!$wp_rewrite->using_permalinks() || is_admin()) {
        $base = trailingslashit(get_bloginfo('url'));
        if ($pagenum > 1) {
            $result = add_query_arg('paged', $pagenum, $base . $request);
        } else {
            $result = $base . $request;
        }
    } else {
        $qs_regex = '|\?.*?$|';
        preg_match($qs_regex, $request, $qs_match);
        if (!empty($qs_match[0])) {
            $query_string = $qs_match[0];
            $request = preg_replace($qs_regex, '', $request);
        } else {
            $query_string = '';
        }
        $request = preg_replace("|{$wp_rewrite->pagination_base}/\\d+/?\$|", '', $request);
        $request = preg_replace('|^' . preg_quote($wp_rewrite->index, '|') . '|i', '', $request);
        $request = ltrim($request, '/');
        $base = trailingslashit(get_bloginfo('url'));
        if ($wp_rewrite->using_index_permalinks() && ($pagenum > 1 || '' !== $request)) {
            $base .= $wp_rewrite->index . '/';
        }
        if ($pagenum > 1) {
            $request = ((!empty($request)) ? trailingslashit($request) : $request) . user_trailingslashit($wp_rewrite->pagination_base . '/' . $pagenum, 'paged');
        }
        $result = $base . $request . $query_string;
    }
    /**
     * Filters the page number link for the current request.
     *
     * @since 2.5.0
     * @since 5.2.0 Added the `$pagenum` argument.
     *
     * @param string $result  The page number link.
     * @param int    $pagenum The page number.
     */
    $result = apply_filters('get_pagenum_link', $result, $pagenum);
    if ($escape) {
        return esc_url($result);
    } else {
        return esc_url_raw($result);
    }
}

WordPress Version: 5.3

/**
 * Retrieves the link for a page number.
 *
 * @since 1.5.0
 *
 * @global WP_Rewrite $wp_rewrite WordPress rewrite component.
 *
 * @param int  $pagenum Optional. Page number. Default 1.
 * @param bool $escape  Optional. Whether to escape the URL for display, with esc_url(). Defaults to true.
 *                      Otherwise, prepares the URL with esc_url_raw().
 * @return string The link URL for the given page number.
 */
function get_pagenum_link($pagenum = 1, $escape = true)
{
    global $wp_rewrite;
    $pagenum = (int) $pagenum;
    $request = remove_query_arg('paged');
    $home_root = parse_url(home_url());
    $home_root = isset($home_root['path']) ? $home_root['path'] : '';
    $home_root = preg_quote($home_root, '|');
    $request = preg_replace('|^' . $home_root . '|i', '', $request);
    $request = preg_replace('|^/+|', '', $request);
    if (!$wp_rewrite->using_permalinks() || is_admin()) {
        $base = trailingslashit(get_bloginfo('url'));
        if ($pagenum > 1) {
            $result = add_query_arg('paged', $pagenum, $base . $request);
        } else {
            $result = $base . $request;
        }
    } else {
        $qs_regex = '|\?.*?$|';
        preg_match($qs_regex, $request, $qs_match);
        if (!empty($qs_match[0])) {
            $query_string = $qs_match[0];
            $request = preg_replace($qs_regex, '', $request);
        } else {
            $query_string = '';
        }
        $request = preg_replace("|{$wp_rewrite->pagination_base}/\\d+/?\$|", '', $request);
        $request = preg_replace('|^' . preg_quote($wp_rewrite->index, '|') . '|i', '', $request);
        $request = ltrim($request, '/');
        $base = trailingslashit(get_bloginfo('url'));
        if ($wp_rewrite->using_index_permalinks() && ($pagenum > 1 || '' != $request)) {
            $base .= $wp_rewrite->index . '/';
        }
        if ($pagenum > 1) {
            $request = ((!empty($request)) ? trailingslashit($request) : $request) . user_trailingslashit($wp_rewrite->pagination_base . '/' . $pagenum, 'paged');
        }
        $result = $base . $request . $query_string;
    }
    /**
     * Filters the page number link for the current request.
     *
     * @since 2.5.0
     * @since 5.2.0 Added the `$pagenum` argument.
     *
     * @param string $result  The page number link.
     * @param int    $pagenum The page number.
     */
    $result = apply_filters('get_pagenum_link', $result, $pagenum);
    if ($escape) {
        return esc_url($result);
    } else {
        return esc_url_raw($result);
    }
}

WordPress Version: 5.2

/**
 * Retrieves the link for a page number.
 *
 * @since 1.5.0
 *
 * @global WP_Rewrite $wp_rewrite
 *
 * @param int  $pagenum Optional. Page number. Default 1.
 * @param bool $escape  Optional. Whether to escape the URL for display, with esc_url(). Defaults to true.
 *                      Otherwise, prepares the URL with esc_url_raw().
 * @return string The link URL for the given page number.
 */
function get_pagenum_link($pagenum = 1, $escape = true)
{
    global $wp_rewrite;
    $pagenum = (int) $pagenum;
    $request = remove_query_arg('paged');
    $home_root = parse_url(home_url());
    $home_root = isset($home_root['path']) ? $home_root['path'] : '';
    $home_root = preg_quote($home_root, '|');
    $request = preg_replace('|^' . $home_root . '|i', '', $request);
    $request = preg_replace('|^/+|', '', $request);
    if (!$wp_rewrite->using_permalinks() || is_admin()) {
        $base = trailingslashit(get_bloginfo('url'));
        if ($pagenum > 1) {
            $result = add_query_arg('paged', $pagenum, $base . $request);
        } else {
            $result = $base . $request;
        }
    } else {
        $qs_regex = '|\?.*?$|';
        preg_match($qs_regex, $request, $qs_match);
        if (!empty($qs_match[0])) {
            $query_string = $qs_match[0];
            $request = preg_replace($qs_regex, '', $request);
        } else {
            $query_string = '';
        }
        $request = preg_replace("|{$wp_rewrite->pagination_base}/\\d+/?\$|", '', $request);
        $request = preg_replace('|^' . preg_quote($wp_rewrite->index, '|') . '|i', '', $request);
        $request = ltrim($request, '/');
        $base = trailingslashit(get_bloginfo('url'));
        if ($wp_rewrite->using_index_permalinks() && ($pagenum > 1 || '' != $request)) {
            $base .= $wp_rewrite->index . '/';
        }
        if ($pagenum > 1) {
            $request = ((!empty($request)) ? trailingslashit($request) : $request) . user_trailingslashit($wp_rewrite->pagination_base . '/' . $pagenum, 'paged');
        }
        $result = $base . $request . $query_string;
    }
    /**
     * Filters the page number link for the current request.
     *
     * @since 2.5.0
     * @since 5.2.0 Added the `$pagenum` argument.
     *
     * @param string $result  The page number link.
     * @param int    $pagenum The page number.
     */
    $result = apply_filters('get_pagenum_link', $result, $pagenum);
    if ($escape) {
        return esc_url($result);
    } else {
        return esc_url_raw($result);
    }
}

WordPress Version: 5.1

/**
 * Retrieves the link for a page number.
 *
 * @since 1.5.0
 *
 * @global WP_Rewrite $wp_rewrite
 *
 * @param int  $pagenum Optional. Page ID. Default 1.
 * @param bool $escape  Optional. Whether to escape the URL for display, with esc_url(). Defaults to true.
 *                      Otherwise, prepares the URL with esc_url_raw().
 * @return string The link URL for the given page number.
 */
function get_pagenum_link($pagenum = 1, $escape = true)
{
    global $wp_rewrite;
    $pagenum = (int) $pagenum;
    $request = remove_query_arg('paged');
    $home_root = parse_url(home_url());
    $home_root = isset($home_root['path']) ? $home_root['path'] : '';
    $home_root = preg_quote($home_root, '|');
    $request = preg_replace('|^' . $home_root . '|i', '', $request);
    $request = preg_replace('|^/+|', '', $request);
    if (!$wp_rewrite->using_permalinks() || is_admin()) {
        $base = trailingslashit(get_bloginfo('url'));
        if ($pagenum > 1) {
            $result = add_query_arg('paged', $pagenum, $base . $request);
        } else {
            $result = $base . $request;
        }
    } else {
        $qs_regex = '|\?.*?$|';
        preg_match($qs_regex, $request, $qs_match);
        if (!empty($qs_match[0])) {
            $query_string = $qs_match[0];
            $request = preg_replace($qs_regex, '', $request);
        } else {
            $query_string = '';
        }
        $request = preg_replace("|{$wp_rewrite->pagination_base}/\\d+/?\$|", '', $request);
        $request = preg_replace('|^' . preg_quote($wp_rewrite->index, '|') . '|i', '', $request);
        $request = ltrim($request, '/');
        $base = trailingslashit(get_bloginfo('url'));
        if ($wp_rewrite->using_index_permalinks() && ($pagenum > 1 || '' != $request)) {
            $base .= $wp_rewrite->index . '/';
        }
        if ($pagenum > 1) {
            $request = ((!empty($request)) ? trailingslashit($request) : $request) . user_trailingslashit($wp_rewrite->pagination_base . '/' . $pagenum, 'paged');
        }
        $result = $base . $request . $query_string;
    }
    /**
     * Filters the page number link for the current request.
     *
     * @since 2.5.0
     *
     * @param string $result The page number link.
     */
    $result = apply_filters('get_pagenum_link', $result);
    if ($escape) {
        return esc_url($result);
    } else {
        return esc_url_raw($result);
    }
}

WordPress Version: 4.6

/**
 * Retrieves the link for a page number.
 *
 * @since 1.5.0
 *
 * @global WP_Rewrite $wp_rewrite
 *
 * @param int  $pagenum Optional. Page ID. Default 1.
 * @param bool $escape  Optional. Whether to escape the URL for display, with esc_url(). Defaults to true.
 * 	                    Otherwise, prepares the URL with esc_url_raw().
 * @return string The link URL for the given page number.
 */
function get_pagenum_link($pagenum = 1, $escape = true)
{
    global $wp_rewrite;
    $pagenum = (int) $pagenum;
    $request = remove_query_arg('paged');
    $home_root = parse_url(home_url());
    $home_root = isset($home_root['path']) ? $home_root['path'] : '';
    $home_root = preg_quote($home_root, '|');
    $request = preg_replace('|^' . $home_root . '|i', '', $request);
    $request = preg_replace('|^/+|', '', $request);
    if (!$wp_rewrite->using_permalinks() || is_admin()) {
        $base = trailingslashit(get_bloginfo('url'));
        if ($pagenum > 1) {
            $result = add_query_arg('paged', $pagenum, $base . $request);
        } else {
            $result = $base . $request;
        }
    } else {
        $qs_regex = '|\?.*?$|';
        preg_match($qs_regex, $request, $qs_match);
        if (!empty($qs_match[0])) {
            $query_string = $qs_match[0];
            $request = preg_replace($qs_regex, '', $request);
        } else {
            $query_string = '';
        }
        $request = preg_replace("|{$wp_rewrite->pagination_base}/\\d+/?\$|", '', $request);
        $request = preg_replace('|^' . preg_quote($wp_rewrite->index, '|') . '|i', '', $request);
        $request = ltrim($request, '/');
        $base = trailingslashit(get_bloginfo('url'));
        if ($wp_rewrite->using_index_permalinks() && ($pagenum > 1 || '' != $request)) {
            $base .= $wp_rewrite->index . '/';
        }
        if ($pagenum > 1) {
            $request = ((!empty($request)) ? trailingslashit($request) : $request) . user_trailingslashit($wp_rewrite->pagination_base . "/" . $pagenum, 'paged');
        }
        $result = $base . $request . $query_string;
    }
    /**
     * Filters the page number link for the current request.
     *
     * @since 2.5.0
     *
     * @param string $result The page number link.
     */
    $result = apply_filters('get_pagenum_link', $result);
    if ($escape) {
        return esc_url($result);
    } else {
        return esc_url_raw($result);
    }
}

WordPress Version: 4.4

/**
 * Retrieve links for page numbers.
 *
 * @since 1.5.0
 *
 * @global WP_Rewrite $wp_rewrite
 *
 * @param int  $pagenum Optional. Page ID.
 * @param bool $escape  Optional. Whether to escape the URL for display, with esc_url(). Defaults to true.
 * 	                    Otherwise, prepares the URL with esc_url_raw().
 * @return string The link URL for the given page number.
 */
function get_pagenum_link($pagenum = 1, $escape = true)
{
    global $wp_rewrite;
    $pagenum = (int) $pagenum;
    $request = remove_query_arg('paged');
    $home_root = parse_url(home_url());
    $home_root = isset($home_root['path']) ? $home_root['path'] : '';
    $home_root = preg_quote($home_root, '|');
    $request = preg_replace('|^' . $home_root . '|i', '', $request);
    $request = preg_replace('|^/+|', '', $request);
    if (!$wp_rewrite->using_permalinks() || is_admin()) {
        $base = trailingslashit(get_bloginfo('url'));
        if ($pagenum > 1) {
            $result = add_query_arg('paged', $pagenum, $base . $request);
        } else {
            $result = $base . $request;
        }
    } else {
        $qs_regex = '|\?.*?$|';
        preg_match($qs_regex, $request, $qs_match);
        if (!empty($qs_match[0])) {
            $query_string = $qs_match[0];
            $request = preg_replace($qs_regex, '', $request);
        } else {
            $query_string = '';
        }
        $request = preg_replace("|{$wp_rewrite->pagination_base}/\\d+/?\$|", '', $request);
        $request = preg_replace('|^' . preg_quote($wp_rewrite->index, '|') . '|i', '', $request);
        $request = ltrim($request, '/');
        $base = trailingslashit(get_bloginfo('url'));
        if ($wp_rewrite->using_index_permalinks() && ($pagenum > 1 || '' != $request)) {
            $base .= $wp_rewrite->index . '/';
        }
        if ($pagenum > 1) {
            $request = ((!empty($request)) ? trailingslashit($request) : $request) . user_trailingslashit($wp_rewrite->pagination_base . "/" . $pagenum, 'paged');
        }
        $result = $base . $request . $query_string;
    }
    /**
     * Filter the page number link for the current request.
     *
     * @since 2.5.0
     *
     * @param string $result The page number link.
     */
    $result = apply_filters('get_pagenum_link', $result);
    if ($escape) {
        return esc_url($result);
    } else {
        return esc_url_raw($result);
    }
}

WordPress Version: 4.3

/**
* Retrieve links for page numbers.
*
* @since 1.5.0
*
* @global WP_Rewrite $wp_rewrite
*
* @param int  $pagenum Optional. Page ID.
* @param bool $escape  Optional. Whether to escape the URL for display, with esc_url(). Defaults to true.
* 	                    Otherwise, prepares the URL with esc_url_raw().
* @return string The link URL for the given page number.
*/
function get_pagenum_link($pagenum = 1, $escape = true)
{
    global $wp_rewrite;
    $pagenum = (int) $pagenum;
    $request = remove_query_arg('paged');
    $home_root = parse_url(home_url());
    $home_root = isset($home_root['path']) ? $home_root['path'] : '';
    $home_root = preg_quote($home_root, '|');
    $request = preg_replace('|^' . $home_root . '|i', '', $request);
    $request = preg_replace('|^/+|', '', $request);
    if (!$wp_rewrite->using_permalinks() || is_admin()) {
        $base = trailingslashit(get_bloginfo('url'));
        if ($pagenum > 1) {
            $result = add_query_arg('paged', $pagenum, $base . $request);
        } else {
            $result = $base . $request;
        }
    } else {
        $qs_regex = '|\?.*?$|';
        preg_match($qs_regex, $request, $qs_match);
        if (!empty($qs_match[0])) {
            $query_string = $qs_match[0];
            $request = preg_replace($qs_regex, '', $request);
        } else {
            $query_string = '';
        }
        $request = preg_replace("|{$wp_rewrite->pagination_base}/\\d+/?\$|", '', $request);
        $request = preg_replace('|^' . preg_quote($wp_rewrite->index, '|') . '|i', '', $request);
        $request = ltrim($request, '/');
        $base = trailingslashit(get_bloginfo('url'));
        if ($wp_rewrite->using_index_permalinks() && ($pagenum > 1 || '' != $request)) {
            $base .= $wp_rewrite->index . '/';
        }
        if ($pagenum > 1) {
            $request = ((!empty($request)) ? trailingslashit($request) : $request) . user_trailingslashit($wp_rewrite->pagination_base . "/" . $pagenum, 'paged');
        }
        $result = $base . $request . $query_string;
    }
    /**
     * Filter the page number link for the current request.
     *
     * @since 2.5.0
     *
     * @param string $result The page number link.
     */
    $result = apply_filters('get_pagenum_link', $result);
    if ($escape) {
        return esc_url($result);
    } else {
        return esc_url_raw($result);
    }
}

WordPress Version: 4.1

/**
* Retrieve links for page numbers.
*
* @since 1.5.0
*
* @param int $pagenum Optional. Page ID.
* @param bool $escape Optional. Whether to escape the URL for display, with esc_url(). Defaults to true.
* 	Otherwise, prepares the URL with esc_url_raw().
* @return string The link URL for the given page number.
*/
function get_pagenum_link($pagenum = 1, $escape = true)
{
    global $wp_rewrite;
    $pagenum = (int) $pagenum;
    $request = remove_query_arg('paged');
    $home_root = parse_url(home_url());
    $home_root = isset($home_root['path']) ? $home_root['path'] : '';
    $home_root = preg_quote($home_root, '|');
    $request = preg_replace('|^' . $home_root . '|i', '', $request);
    $request = preg_replace('|^/+|', '', $request);
    if (!$wp_rewrite->using_permalinks() || is_admin()) {
        $base = trailingslashit(get_bloginfo('url'));
        if ($pagenum > 1) {
            $result = add_query_arg('paged', $pagenum, $base . $request);
        } else {
            $result = $base . $request;
        }
    } else {
        $qs_regex = '|\?.*?$|';
        preg_match($qs_regex, $request, $qs_match);
        if (!empty($qs_match[0])) {
            $query_string = $qs_match[0];
            $request = preg_replace($qs_regex, '', $request);
        } else {
            $query_string = '';
        }
        $request = preg_replace("|{$wp_rewrite->pagination_base}/\\d+/?\$|", '', $request);
        $request = preg_replace('|^' . preg_quote($wp_rewrite->index, '|') . '|i', '', $request);
        $request = ltrim($request, '/');
        $base = trailingslashit(get_bloginfo('url'));
        if ($wp_rewrite->using_index_permalinks() && ($pagenum > 1 || '' != $request)) {
            $base .= $wp_rewrite->index . '/';
        }
        if ($pagenum > 1) {
            $request = ((!empty($request)) ? trailingslashit($request) : $request) . user_trailingslashit($wp_rewrite->pagination_base . "/" . $pagenum, 'paged');
        }
        $result = $base . $request . $query_string;
    }
    /**
     * Filter the page number link for the current request.
     *
     * @since 2.5.0
     *
     * @param string $result The page number link.
     */
    $result = apply_filters('get_pagenum_link', $result);
    if ($escape) {
        return esc_url($result);
    } else {
        return esc_url_raw($result);
    }
}

WordPress Version: 3.9

/**
* Retrieve links for page numbers.
*
* @since 1.5.0
*
* @param int $pagenum Optional. Page ID.
* @param bool $escape Optional. Whether to escape the URL for display, with esc_url(). Defaults to true.
* 	Otherwise, prepares the URL with esc_url_raw().
* @return string
*/
function get_pagenum_link($pagenum = 1, $escape = true)
{
    global $wp_rewrite;
    $pagenum = (int) $pagenum;
    $request = remove_query_arg('paged');
    $home_root = parse_url(home_url());
    $home_root = isset($home_root['path']) ? $home_root['path'] : '';
    $home_root = preg_quote($home_root, '|');
    $request = preg_replace('|^' . $home_root . '|i', '', $request);
    $request = preg_replace('|^/+|', '', $request);
    if (!$wp_rewrite->using_permalinks() || is_admin()) {
        $base = trailingslashit(get_bloginfo('url'));
        if ($pagenum > 1) {
            $result = add_query_arg('paged', $pagenum, $base . $request);
        } else {
            $result = $base . $request;
        }
    } else {
        $qs_regex = '|\?.*?$|';
        preg_match($qs_regex, $request, $qs_match);
        if (!empty($qs_match[0])) {
            $query_string = $qs_match[0];
            $request = preg_replace($qs_regex, '', $request);
        } else {
            $query_string = '';
        }
        $request = preg_replace("|{$wp_rewrite->pagination_base}/\\d+/?\$|", '', $request);
        $request = preg_replace('|^' . preg_quote($wp_rewrite->index, '|') . '|i', '', $request);
        $request = ltrim($request, '/');
        $base = trailingslashit(get_bloginfo('url'));
        if ($wp_rewrite->using_index_permalinks() && ($pagenum > 1 || '' != $request)) {
            $base .= $wp_rewrite->index . '/';
        }
        if ($pagenum > 1) {
            $request = ((!empty($request)) ? trailingslashit($request) : $request) . user_trailingslashit($wp_rewrite->pagination_base . "/" . $pagenum, 'paged');
        }
        $result = $base . $request . $query_string;
    }
    /**
     * Filter the page number link for the current request.
     *
     * @since 2.5.0
     *
     * @param string $result The page number link.
     */
    $result = apply_filters('get_pagenum_link', $result);
    if ($escape) {
        return esc_url($result);
    } else {
        return esc_url_raw($result);
    }
}

WordPress Version: 3.7

/**
* Retrieve links for page numbers.
*
* @since 1.5.0
*
* @param int $pagenum Optional. Page ID.
* @param bool $escape Optional. Whether to escape the URL for display, with esc_url(). Defaults to true.
* 	Otherwise, prepares the URL with esc_url_raw().
* @return string
*/
function get_pagenum_link($pagenum = 1, $escape = true)
{
    global $wp_rewrite;
    $pagenum = (int) $pagenum;
    $request = remove_query_arg('paged');
    $home_root = parse_url(home_url());
    $home_root = isset($home_root['path']) ? $home_root['path'] : '';
    $home_root = preg_quote($home_root, '|');
    $request = preg_replace('|^' . $home_root . '|i', '', $request);
    $request = preg_replace('|^/+|', '', $request);
    if (!$wp_rewrite->using_permalinks() || is_admin()) {
        $base = trailingslashit(get_bloginfo('url'));
        if ($pagenum > 1) {
            $result = add_query_arg('paged', $pagenum, $base . $request);
        } else {
            $result = $base . $request;
        }
    } else {
        $qs_regex = '|\?.*?$|';
        preg_match($qs_regex, $request, $qs_match);
        if (!empty($qs_match[0])) {
            $query_string = $qs_match[0];
            $request = preg_replace($qs_regex, '', $request);
        } else {
            $query_string = '';
        }
        $request = preg_replace("|{$wp_rewrite->pagination_base}/\\d+/?\$|", '', $request);
        $request = preg_replace('|^' . preg_quote($wp_rewrite->index, '|') . '|i', '', $request);
        $request = ltrim($request, '/');
        $base = trailingslashit(get_bloginfo('url'));
        if ($wp_rewrite->using_index_permalinks() && ($pagenum > 1 || '' != $request)) {
            $base .= $wp_rewrite->index . '/';
        }
        if ($pagenum > 1) {
            $request = ((!empty($request)) ? trailingslashit($request) : $request) . user_trailingslashit($wp_rewrite->pagination_base . "/" . $pagenum, 'paged');
        }
        $result = $base . $request . $query_string;
    }
    $result = apply_filters('get_pagenum_link', $result);
    if ($escape) {
        return esc_url($result);
    } else {
        return esc_url_raw($result);
    }
}