get_preview_post_link

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

WordPress Version: 4.6

/**
 * Retrieves the URL used for the post preview.
 *
 * Allows additional query args to be appended.
 *
 * @since 4.4.0
 *
 * @param int|WP_Post $post         Optional. Post ID or `WP_Post` object. Defaults to global `$post`.
 * @param array       $query_args   Optional. Array of additional query args to be appended to the link.
 *                                  Default empty array.
 * @param string      $preview_link Optional. Base preview link to be used if it should differ from the
 *                                  post permalink. Default empty.
 * @return string|null URL used for the post preview, or null if the post does not exist.
 */
function get_preview_post_link($post = null, $query_args = array(), $preview_link = '')
{
    $post = get_post($post);
    if (!$post) {
        return;
    }
    $post_type_object = get_post_type_object($post->post_type);
    if (is_post_type_viewable($post_type_object)) {
        if (!$preview_link) {
            $preview_link = set_url_scheme(get_permalink($post));
        }
        $query_args['preview'] = 'true';
        $preview_link = add_query_arg($query_args, $preview_link);
    }
    /**
     * Filters the URL used for a post preview.
     *
     * @since 2.0.5
     * @since 4.0.0 Added the `$post` parameter.
     *
     * @param string  $preview_link URL used for the post preview.
     * @param WP_Post $post         Post object.
     */
    return apply_filters('preview_post_link', $preview_link, $post);
}

WordPress Version: 4.5

/**
 * Retrieve URL used for the post preview.
 *
 * Get the preview post URL. Allows additional query args to be appended.
 *
 * @since 4.4.0
 *
 * @param int|WP_Post $post         Optional. Post ID or `WP_Post` object. Defaults to global post.
 * @param array       $query_args   Optional. Array of additional query args to be appended to the link.
 * @param string      $preview_link Optional. Base preview link to be used if it should differ from the post permalink.
 * @return string URL used for the post preview.
 */
function get_preview_post_link($post = null, $query_args = array(), $preview_link = '')
{
    $post = get_post($post);
    if (!$post) {
        return;
    }
    $post_type_object = get_post_type_object($post->post_type);
    if (is_post_type_viewable($post_type_object)) {
        if (!$preview_link) {
            $preview_link = set_url_scheme(get_permalink($post));
        }
        $query_args['preview'] = 'true';
        $preview_link = add_query_arg($query_args, $preview_link);
    }
    /**
     * Filter the URL used for a post preview.
     *
     * @since 2.0.5
     * @since 4.0.0 Added the `$post` parameter.
     *
     * @param string  $preview_link URL used for the post preview.
     * @param WP_Post $post         Post object.
     */
    return apply_filters('preview_post_link', $preview_link, $post);
}

WordPress Version: 4.4

/**
 * Retrieve URL used for the post preview.
 *
 * Get the preview post URL. Allows additional query args to be appended.
 *
 * @since 4.4.0
 *
 * @param int|WP_Post $post         Optional. Post ID or `WP_Post` object. Defaults to global post.
 * @param array       $query_args   Optional. Array of additional query args to be appended to the link.
 * @param string      $preview_link Optional. Base preview link to be used if it should differ from the post permalink.
 * @return string URL used for the post preview.
 */
function get_preview_post_link($post = null, $query_args = array(), $preview_link = '')
{
    $post = get_post($post);
    if (!$post) {
        return;
    }
    $post_type_object = get_post_type_object($post->post_type);
    if (is_post_type_viewable($post_type_object)) {
        if (!$preview_link) {
            $preview_link = get_permalink($post);
        }
        $query_args['preview'] = 'true';
        $preview_link = add_query_arg($query_args, $preview_link);
    }
    /**
     * Filter the URL used for a post preview.
     *
     * @since 2.0.5
     * @since 4.0.0 Added the `$post` parameter.
     *
     * @param string  $preview_link URL used for the post preview.
     * @param WP_Post $post         Post object.
     */
    return apply_filters('preview_post_link', $preview_link, $post);
}