_wp_link_page

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

WordPress Version: 5.5

/**
 * Helper function for wp_link_pages().
 *
 * @since 3.1.0
 * @access private
 *
 * @global WP_Rewrite $wp_rewrite WordPress rewrite component.
 *
 * @param int $i Page number.
 * @return string Link.
 */
function _wp_link_page($i)
{
    global $wp_rewrite;
    $post = get_post();
    $query_args = array();
    if (1 == $i) {
        $url = get_permalink();
    } else if (!get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending'), true)) {
        $url = add_query_arg('page', $i, get_permalink());
    } elseif ('page' === get_option('show_on_front') && get_option('page_on_front') == $post->ID) {
        $url = trailingslashit(get_permalink()) . user_trailingslashit("{$wp_rewrite->pagination_base}/" . $i, 'single_paged');
    } else {
        $url = trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged');
    }
    if (is_preview()) {
        if ('draft' !== $post->post_status && isset($_GET['preview_id'], $_GET['preview_nonce'])) {
            $query_args['preview_id'] = wp_unslash($_GET['preview_id']);
            $query_args['preview_nonce'] = wp_unslash($_GET['preview_nonce']);
        }
        $url = get_preview_post_link($post, $query_args, $url);
    }
    return '<a href="' . esc_url($url) . '" class="post-page-numbers">';
}

WordPress Version: 5.3

/**
 * Helper function for wp_link_pages().
 *
 * @since 3.1.0
 * @access private
 *
 * @global WP_Rewrite $wp_rewrite WordPress rewrite component.
 *
 * @param int $i Page number.
 * @return string Link.
 */
function _wp_link_page($i)
{
    global $wp_rewrite;
    $post = get_post();
    $query_args = array();
    if (1 == $i) {
        $url = get_permalink();
    } else if ('' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending'))) {
        $url = add_query_arg('page', $i, get_permalink());
    } elseif ('page' == get_option('show_on_front') && get_option('page_on_front') == $post->ID) {
        $url = trailingslashit(get_permalink()) . user_trailingslashit("{$wp_rewrite->pagination_base}/" . $i, 'single_paged');
    } else {
        $url = trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged');
    }
    if (is_preview()) {
        if ('draft' !== $post->post_status && isset($_GET['preview_id'], $_GET['preview_nonce'])) {
            $query_args['preview_id'] = wp_unslash($_GET['preview_id']);
            $query_args['preview_nonce'] = wp_unslash($_GET['preview_nonce']);
        }
        $url = get_preview_post_link($post, $query_args, $url);
    }
    return '<a href="' . esc_url($url) . '" class="post-page-numbers">';
}

WordPress Version: 5.1

/**
 * Helper function for wp_link_pages().
 *
 * @since 3.1.0
 * @access private
 *
 * @global WP_Rewrite $wp_rewrite
 *
 * @param int $i Page number.
 * @return string Link.
 */
function _wp_link_page($i)
{
    global $wp_rewrite;
    $post = get_post();
    $query_args = array();
    if (1 == $i) {
        $url = get_permalink();
    } else if ('' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending'))) {
        $url = add_query_arg('page', $i, get_permalink());
    } elseif ('page' == get_option('show_on_front') && get_option('page_on_front') == $post->ID) {
        $url = trailingslashit(get_permalink()) . user_trailingslashit("{$wp_rewrite->pagination_base}/" . $i, 'single_paged');
    } else {
        $url = trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged');
    }
    if (is_preview()) {
        if ('draft' !== $post->post_status && isset($_GET['preview_id'], $_GET['preview_nonce'])) {
            $query_args['preview_id'] = wp_unslash($_GET['preview_id']);
            $query_args['preview_nonce'] = wp_unslash($_GET['preview_nonce']);
        }
        $url = get_preview_post_link($post, $query_args, $url);
    }
    return '<a href="' . esc_url($url) . '" class="post-page-numbers">';
}

WordPress Version: 4.4

/**
 * Helper function for wp_link_pages().
 *
 * @since 3.1.0
 * @access private
 *
 * @global WP_Rewrite $wp_rewrite
 *
 * @param int $i Page number.
 * @return string Link.
 */
function _wp_link_page($i)
{
    global $wp_rewrite;
    $post = get_post();
    $query_args = array();
    if (1 == $i) {
        $url = get_permalink();
    } else if ('' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending'))) {
        $url = add_query_arg('page', $i, get_permalink());
    } elseif ('page' == get_option('show_on_front') && get_option('page_on_front') == $post->ID) {
        $url = trailingslashit(get_permalink()) . user_trailingslashit("{$wp_rewrite->pagination_base}/" . $i, 'single_paged');
    } else {
        $url = trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged');
    }
    if (is_preview()) {
        if ('draft' !== $post->post_status && isset($_GET['preview_id'], $_GET['preview_nonce'])) {
            $query_args['preview_id'] = wp_unslash($_GET['preview_id']);
            $query_args['preview_nonce'] = wp_unslash($_GET['preview_nonce']);
        }
        $url = get_preview_post_link($post, $query_args, $url);
    }
    return '<a href="' . esc_url($url) . '">';
}

WordPress Version: 4.3

/**
 * Helper function for wp_link_pages().
 *
 * @since 3.1.0
 * @access private
 *
 * @global WP_Rewrite $wp_rewrite
 *
 * @param int $i Page number.
 * @return string Link.
 */
function _wp_link_page($i)
{
    global $wp_rewrite;
    $post = get_post();
    if (1 == $i) {
        $url = get_permalink();
    } else if ('' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending'))) {
        $url = add_query_arg('page', $i, get_permalink());
    } elseif ('page' == get_option('show_on_front') && get_option('page_on_front') == $post->ID) {
        $url = trailingslashit(get_permalink()) . user_trailingslashit("{$wp_rewrite->pagination_base}/" . $i, 'single_paged');
    } else {
        $url = trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged');
    }
    if (is_preview()) {
        $url = add_query_arg(array('preview' => 'true'), $url);
        if ('draft' !== $post->post_status && isset($_GET['preview_id'], $_GET['preview_nonce'])) {
            $url = add_query_arg(array('preview_id' => wp_unslash($_GET['preview_id']), 'preview_nonce' => wp_unslash($_GET['preview_nonce'])), $url);
        }
    }
    return '<a href="' . esc_url($url) . '">';
}

WordPress Version: 3.9

/**
 * Helper function for wp_link_pages().
 *
 * @since 3.1.0
 * @access private
 *
 * @param int $i Page number.
 * @return string Link.
 */
function _wp_link_page($i)
{
    global $wp_rewrite;
    $post = get_post();
    if (1 == $i) {
        $url = get_permalink();
    } else if ('' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending'))) {
        $url = add_query_arg('page', $i, get_permalink());
    } elseif ('page' == get_option('show_on_front') && get_option('page_on_front') == $post->ID) {
        $url = trailingslashit(get_permalink()) . user_trailingslashit("{$wp_rewrite->pagination_base}/" . $i, 'single_paged');
    } else {
        $url = trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged');
    }
    if (is_preview()) {
        $url = add_query_arg(array('preview' => 'true'), $url);
        if ('draft' !== $post->post_status && isset($_GET['preview_id'], $_GET['preview_nonce'])) {
            $url = add_query_arg(array('preview_id' => wp_unslash($_GET['preview_id']), 'preview_nonce' => wp_unslash($_GET['preview_nonce'])), $url);
        }
    }
    return '<a href="' . esc_url($url) . '">';
}

WordPress Version: 3.7

/**
 * Helper function for wp_link_pages().
 *
 * @since 3.1.0
 * @access private
 *
 * @param int $i Page number.
 * @return string Link.
 */
function _wp_link_page($i)
{
    global $wp_rewrite;
    $post = get_post();
    if (1 == $i) {
        $url = get_permalink();
    } else if ('' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending'))) {
        $url = add_query_arg('page', $i, get_permalink());
    } elseif ('page' == get_option('show_on_front') && get_option('page_on_front') == $post->ID) {
        $url = trailingslashit(get_permalink()) . user_trailingslashit("{$wp_rewrite->pagination_base}/" . $i, 'single_paged');
    } else {
        $url = trailingslashit(get_permalink()) . user_trailingslashit($i, 'single_paged');
    }
    return '<a href="' . esc_url($url) . '">';
}