_find_post_by_old_slug

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

WordPress Version: 6.3

/**
 * Find the post ID for redirecting an old slug.
 *
 * @since 4.9.3
 * @access private
 *
 * @see wp_old_slug_redirect()
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param string $post_type The current post type based on the query vars.
 * @return int The Post ID.
 */
function _find_post_by_old_slug($post_type)
{
    global $wpdb;
    $query = $wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta}, {$wpdb->posts} WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_slug' AND meta_value = %s", $post_type, get_query_var('name'));
    /*
     * If year, monthnum, or day have been specified, make our query more precise
     * just in case there are multiple identical _wp_old_slug values.
     */
    if (get_query_var('year')) {
        $query .= $wpdb->prepare(' AND YEAR(post_date) = %d', get_query_var('year'));
    }
    if (get_query_var('monthnum')) {
        $query .= $wpdb->prepare(' AND MONTH(post_date) = %d', get_query_var('monthnum'));
    }
    if (get_query_var('day')) {
        $query .= $wpdb->prepare(' AND DAYOFMONTH(post_date) = %d', get_query_var('day'));
    }
    $key = md5($query);
    $last_changed = wp_cache_get_last_changed('posts');
    $cache_key = "find_post_by_old_slug:{$key}:{$last_changed}";
    $cache = wp_cache_get($cache_key, 'post-queries');
    if (false !== $cache) {
        $id = $cache;
    } else {
        $id = (int) $wpdb->get_var($query);
        wp_cache_set($cache_key, $id, 'post-queries');
    }
    return $id;
}

WordPress Version: 6.1

/**
 * Find the post ID for redirecting an old slug.
 *
 * @since 4.9.3
 * @access private
 *
 * @see wp_old_slug_redirect()
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param string $post_type The current post type based on the query vars.
 * @return int The Post ID.
 */
function _find_post_by_old_slug($post_type)
{
    global $wpdb;
    $query = $wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta}, {$wpdb->posts} WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_slug' AND meta_value = %s", $post_type, get_query_var('name'));
    // If year, monthnum, or day have been specified, make our query more precise
    // just in case there are multiple identical _wp_old_slug values.
    if (get_query_var('year')) {
        $query .= $wpdb->prepare(' AND YEAR(post_date) = %d', get_query_var('year'));
    }
    if (get_query_var('monthnum')) {
        $query .= $wpdb->prepare(' AND MONTH(post_date) = %d', get_query_var('monthnum'));
    }
    if (get_query_var('day')) {
        $query .= $wpdb->prepare(' AND DAYOFMONTH(post_date) = %d', get_query_var('day'));
    }
    $key = md5($query);
    $last_changed = wp_cache_get_last_changed('posts');
    $cache_key = "find_post_by_old_slug:{$key}:{$last_changed}";
    $cache = wp_cache_get($cache_key, 'posts');
    if (false !== $cache) {
        $id = $cache;
    } else {
        $id = (int) $wpdb->get_var($query);
        wp_cache_set($cache_key, $id, 'posts');
    }
    return $id;
}

WordPress Version: 5.6

/**
 * Find the post ID for redirecting an old slug.
 *
 * @since 4.9.3
 * @access private
 *
 * @see wp_old_slug_redirect()
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param string $post_type The current post type based on the query vars.
 * @return int The Post ID.
 */
function _find_post_by_old_slug($post_type)
{
    global $wpdb;
    $query = $wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta}, {$wpdb->posts} WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_slug' AND meta_value = %s", $post_type, get_query_var('name'));
    // If year, monthnum, or day have been specified, make our query more precise
    // just in case there are multiple identical _wp_old_slug values.
    if (get_query_var('year')) {
        $query .= $wpdb->prepare(' AND YEAR(post_date) = %d', get_query_var('year'));
    }
    if (get_query_var('monthnum')) {
        $query .= $wpdb->prepare(' AND MONTH(post_date) = %d', get_query_var('monthnum'));
    }
    if (get_query_var('day')) {
        $query .= $wpdb->prepare(' AND DAYOFMONTH(post_date) = %d', get_query_var('day'));
    }
    $id = (int) $wpdb->get_var($query);
    return $id;
}

WordPress Version: 5.5

/**
 * Find the post ID for redirecting an old slug.
 *
 * @see wp_old_slug_redirect()
 *
 * @since 4.9.3
 * @access private
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param string $post_type The current post type based on the query vars.
 * @return int The Post ID.
 */
function _find_post_by_old_slug($post_type)
{
    global $wpdb;
    $query = $wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta}, {$wpdb->posts} WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_slug' AND meta_value = %s", $post_type, get_query_var('name'));
    // If year, monthnum, or day have been specified, make our query more precise
    // just in case there are multiple identical _wp_old_slug values.
    if (get_query_var('year')) {
        $query .= $wpdb->prepare(' AND YEAR(post_date) = %d', get_query_var('year'));
    }
    if (get_query_var('monthnum')) {
        $query .= $wpdb->prepare(' AND MONTH(post_date) = %d', get_query_var('monthnum'));
    }
    if (get_query_var('day')) {
        $query .= $wpdb->prepare(' AND DAYOFMONTH(post_date) = %d', get_query_var('day'));
    }
    $id = (int) $wpdb->get_var($query);
    return $id;
}

WordPress Version: 5.4

/**
 * Find the post ID for redirecting an old slug.
 *
 * @see wp_old_slug_redirect()
 *
 * @since 4.9.3
 * @access private
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param string $post_type The current post type based on the query vars.
 * @return int $id The Post ID.
 */
function _find_post_by_old_slug($post_type)
{
    global $wpdb;
    $query = $wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta}, {$wpdb->posts} WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_slug' AND meta_value = %s", $post_type, get_query_var('name'));
    // If year, monthnum, or day have been specified, make our query more precise
    // just in case there are multiple identical _wp_old_slug values.
    if (get_query_var('year')) {
        $query .= $wpdb->prepare(' AND YEAR(post_date) = %d', get_query_var('year'));
    }
    if (get_query_var('monthnum')) {
        $query .= $wpdb->prepare(' AND MONTH(post_date) = %d', get_query_var('monthnum'));
    }
    if (get_query_var('day')) {
        $query .= $wpdb->prepare(' AND DAYOFMONTH(post_date) = %d', get_query_var('day'));
    }
    $id = (int) $wpdb->get_var($query);
    return $id;
}

WordPress Version: 5.1

/**
 * Find the post ID for redirecting an old slug.
 *
 * @see wp_old_slug_redirect()
 *
 * @since 4.9.3
 * @access private
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param string $post_type The current post type based on the query vars.
 * @return int $id The Post ID.
 */
function _find_post_by_old_slug($post_type)
{
    global $wpdb;
    $query = $wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta}, {$wpdb->posts} WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_slug' AND meta_value = %s", $post_type, get_query_var('name'));
    // if year, monthnum, or day have been specified, make our query more precise
    // just in case there are multiple identical _wp_old_slug values
    if (get_query_var('year')) {
        $query .= $wpdb->prepare(' AND YEAR(post_date) = %d', get_query_var('year'));
    }
    if (get_query_var('monthnum')) {
        $query .= $wpdb->prepare(' AND MONTH(post_date) = %d', get_query_var('monthnum'));
    }
    if (get_query_var('day')) {
        $query .= $wpdb->prepare(' AND DAYOFMONTH(post_date) = %d', get_query_var('day'));
    }
    $id = (int) $wpdb->get_var($query);
    return $id;
}

WordPress Version: .10

/**
 * Find the post ID for redirecting an old slug.
 *
 * @see wp_old_slug_redirect()
 *
 * @since 4.9.3
 * @access private
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param string $post_type The current post type based on the query vars.
 * @return int $id The Post ID.
 */
function _find_post_by_old_slug($post_type)
{
    global $wpdb;
    $query = $wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta}, {$wpdb->posts} WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_slug' AND meta_value = %s", $post_type, get_query_var('name'));
    // if year, monthnum, or day have been specified, make our query more precise
    // just in case there are multiple identical _wp_old_slug values
    if (get_query_var('year')) {
        $query .= $wpdb->prepare(" AND YEAR(post_date) = %d", get_query_var('year'));
    }
    if (get_query_var('monthnum')) {
        $query .= $wpdb->prepare(" AND MONTH(post_date) = %d", get_query_var('monthnum'));
    }
    if (get_query_var('day')) {
        $query .= $wpdb->prepare(" AND DAYOFMONTH(post_date) = %d", get_query_var('day'));
    }
    $id = (int) $wpdb->get_var($query);
    return $id;
}