_find_post_by_old_date

The timeline below displays how wordpress function _find_post_by_old_date 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 date.
 *
 * @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_date($post_type)
{
    global $wpdb;
    $date_query = '';
    if (get_query_var('year')) {
        $date_query .= $wpdb->prepare(' AND YEAR(pm_date.meta_value) = %d', get_query_var('year'));
    }
    if (get_query_var('monthnum')) {
        $date_query .= $wpdb->prepare(' AND MONTH(pm_date.meta_value) = %d', get_query_var('monthnum'));
    }
    if (get_query_var('day')) {
        $date_query .= $wpdb->prepare(' AND DAYOFMONTH(pm_date.meta_value) = %d', get_query_var('day'));
    }
    $id = 0;
    if ($date_query) {
        $query = $wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta} AS pm_date, {$wpdb->posts} WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_date' AND post_name = %s" . $date_query, $post_type, get_query_var('name'));
        $key = md5($query);
        $last_changed = wp_cache_get_last_changed('posts');
        $cache_key = "find_post_by_old_date:{$key}:{$last_changed}";
        $cache = wp_cache_get($cache_key, 'post-queries');
        if (false !== $cache) {
            $id = $cache;
        } else {
            $id = (int) $wpdb->get_var($query);
            if (!$id) {
                // Check to see if an old slug matches the old date.
                $id = (int) $wpdb->get_var($wpdb->prepare("SELECT ID FROM {$wpdb->posts}, {$wpdb->postmeta} AS pm_slug, {$wpdb->postmeta} AS pm_date WHERE ID = pm_slug.post_id AND ID = pm_date.post_id AND post_type = %s AND pm_slug.meta_key = '_wp_old_slug' AND pm_slug.meta_value = %s AND pm_date.meta_key = '_wp_old_date'" . $date_query, $post_type, get_query_var('name')));
            }
            wp_cache_set($cache_key, $id, 'post-queries');
        }
    }
    return $id;
}

WordPress Version: 6.1

/**
 * Find the post ID for redirecting an old date.
 *
 * @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_date($post_type)
{
    global $wpdb;
    $date_query = '';
    if (get_query_var('year')) {
        $date_query .= $wpdb->prepare(' AND YEAR(pm_date.meta_value) = %d', get_query_var('year'));
    }
    if (get_query_var('monthnum')) {
        $date_query .= $wpdb->prepare(' AND MONTH(pm_date.meta_value) = %d', get_query_var('monthnum'));
    }
    if (get_query_var('day')) {
        $date_query .= $wpdb->prepare(' AND DAYOFMONTH(pm_date.meta_value) = %d', get_query_var('day'));
    }
    $id = 0;
    if ($date_query) {
        $query = $wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta} AS pm_date, {$wpdb->posts} WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_date' AND post_name = %s" . $date_query, $post_type, get_query_var('name'));
        $key = md5($query);
        $last_changed = wp_cache_get_last_changed('posts');
        $cache_key = "find_post_by_old_date:{$key}:{$last_changed}";
        $cache = wp_cache_get($cache_key, 'posts');
        if (false !== $cache) {
            $id = $cache;
        } else {
            $id = (int) $wpdb->get_var($query);
            if (!$id) {
                // Check to see if an old slug matches the old date.
                $id = (int) $wpdb->get_var($wpdb->prepare("SELECT ID FROM {$wpdb->posts}, {$wpdb->postmeta} AS pm_slug, {$wpdb->postmeta} AS pm_date WHERE ID = pm_slug.post_id AND ID = pm_date.post_id AND post_type = %s AND pm_slug.meta_key = '_wp_old_slug' AND pm_slug.meta_value = %s AND pm_date.meta_key = '_wp_old_date'" . $date_query, $post_type, get_query_var('name')));
            }
            wp_cache_set($cache_key, $id, 'posts');
        }
    }
    return $id;
}

WordPress Version: 5.6

/**
 * Find the post ID for redirecting an old date.
 *
 * @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_date($post_type)
{
    global $wpdb;
    $date_query = '';
    if (get_query_var('year')) {
        $date_query .= $wpdb->prepare(' AND YEAR(pm_date.meta_value) = %d', get_query_var('year'));
    }
    if (get_query_var('monthnum')) {
        $date_query .= $wpdb->prepare(' AND MONTH(pm_date.meta_value) = %d', get_query_var('monthnum'));
    }
    if (get_query_var('day')) {
        $date_query .= $wpdb->prepare(' AND DAYOFMONTH(pm_date.meta_value) = %d', get_query_var('day'));
    }
    $id = 0;
    if ($date_query) {
        $id = (int) $wpdb->get_var($wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta} AS pm_date, {$wpdb->posts} WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_date' AND post_name = %s" . $date_query, $post_type, get_query_var('name')));
        if (!$id) {
            // Check to see if an old slug matches the old date.
            $id = (int) $wpdb->get_var($wpdb->prepare("SELECT ID FROM {$wpdb->posts}, {$wpdb->postmeta} AS pm_slug, {$wpdb->postmeta} AS pm_date WHERE ID = pm_slug.post_id AND ID = pm_date.post_id AND post_type = %s AND pm_slug.meta_key = '_wp_old_slug' AND pm_slug.meta_value = %s AND pm_date.meta_key = '_wp_old_date'" . $date_query, $post_type, get_query_var('name')));
        }
    }
    return $id;
}

WordPress Version: 5.5

/**
 * Find the post ID for redirecting an old date.
 *
 * @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_date($post_type)
{
    global $wpdb;
    $date_query = '';
    if (get_query_var('year')) {
        $date_query .= $wpdb->prepare(' AND YEAR(pm_date.meta_value) = %d', get_query_var('year'));
    }
    if (get_query_var('monthnum')) {
        $date_query .= $wpdb->prepare(' AND MONTH(pm_date.meta_value) = %d', get_query_var('monthnum'));
    }
    if (get_query_var('day')) {
        $date_query .= $wpdb->prepare(' AND DAYOFMONTH(pm_date.meta_value) = %d', get_query_var('day'));
    }
    $id = 0;
    if ($date_query) {
        $id = (int) $wpdb->get_var($wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta} AS pm_date, {$wpdb->posts} WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_date' AND post_name = %s" . $date_query, $post_type, get_query_var('name')));
        if (!$id) {
            // Check to see if an old slug matches the old date.
            $id = (int) $wpdb->get_var($wpdb->prepare("SELECT ID FROM {$wpdb->posts}, {$wpdb->postmeta} AS pm_slug, {$wpdb->postmeta} AS pm_date WHERE ID = pm_slug.post_id AND ID = pm_date.post_id AND post_type = %s AND pm_slug.meta_key = '_wp_old_slug' AND pm_slug.meta_value = %s AND pm_date.meta_key = '_wp_old_date'" . $date_query, $post_type, get_query_var('name')));
        }
    }
    return $id;
}

WordPress Version: 5.4

/**
 * Find the post ID for redirecting an old date.
 *
 * @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_date($post_type)
{
    global $wpdb;
    $date_query = '';
    if (get_query_var('year')) {
        $date_query .= $wpdb->prepare(' AND YEAR(pm_date.meta_value) = %d', get_query_var('year'));
    }
    if (get_query_var('monthnum')) {
        $date_query .= $wpdb->prepare(' AND MONTH(pm_date.meta_value) = %d', get_query_var('monthnum'));
    }
    if (get_query_var('day')) {
        $date_query .= $wpdb->prepare(' AND DAYOFMONTH(pm_date.meta_value) = %d', get_query_var('day'));
    }
    $id = 0;
    if ($date_query) {
        $id = (int) $wpdb->get_var($wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta} AS pm_date, {$wpdb->posts} WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_date' AND post_name = %s" . $date_query, $post_type, get_query_var('name')));
        if (!$id) {
            // Check to see if an old slug matches the old date.
            $id = (int) $wpdb->get_var($wpdb->prepare("SELECT ID FROM {$wpdb->posts}, {$wpdb->postmeta} AS pm_slug, {$wpdb->postmeta} AS pm_date WHERE ID = pm_slug.post_id AND ID = pm_date.post_id AND post_type = %s AND pm_slug.meta_key = '_wp_old_slug' AND pm_slug.meta_value = %s AND pm_date.meta_key = '_wp_old_date'" . $date_query, $post_type, get_query_var('name')));
        }
    }
    return $id;
}

WordPress Version: 5.1

/**
 * Find the post ID for redirecting an old date.
 *
 * @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_date($post_type)
{
    global $wpdb;
    $date_query = '';
    if (get_query_var('year')) {
        $date_query .= $wpdb->prepare(' AND YEAR(pm_date.meta_value) = %d', get_query_var('year'));
    }
    if (get_query_var('monthnum')) {
        $date_query .= $wpdb->prepare(' AND MONTH(pm_date.meta_value) = %d', get_query_var('monthnum'));
    }
    if (get_query_var('day')) {
        $date_query .= $wpdb->prepare(' AND DAYOFMONTH(pm_date.meta_value) = %d', get_query_var('day'));
    }
    $id = 0;
    if ($date_query) {
        $id = (int) $wpdb->get_var($wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta} AS pm_date, {$wpdb->posts} WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_date' AND post_name = %s" . $date_query, $post_type, get_query_var('name')));
        if (!$id) {
            // Check to see if an old slug matches the old date
            $id = (int) $wpdb->get_var($wpdb->prepare("SELECT ID FROM {$wpdb->posts}, {$wpdb->postmeta} AS pm_slug, {$wpdb->postmeta} AS pm_date WHERE ID = pm_slug.post_id AND ID = pm_date.post_id AND post_type = %s AND pm_slug.meta_key = '_wp_old_slug' AND pm_slug.meta_value = %s AND pm_date.meta_key = '_wp_old_date'" . $date_query, $post_type, get_query_var('name')));
        }
    }
    return $id;
}

WordPress Version: .10

/**
 * Find the post ID for redirecting an old date.
 *
 * @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_date($post_type)
{
    global $wpdb;
    $date_query = '';
    if (get_query_var('year')) {
        $date_query .= $wpdb->prepare(" AND YEAR(pm_date.meta_value) = %d", get_query_var('year'));
    }
    if (get_query_var('monthnum')) {
        $date_query .= $wpdb->prepare(" AND MONTH(pm_date.meta_value) = %d", get_query_var('monthnum'));
    }
    if (get_query_var('day')) {
        $date_query .= $wpdb->prepare(" AND DAYOFMONTH(pm_date.meta_value) = %d", get_query_var('day'));
    }
    $id = 0;
    if ($date_query) {
        $id = (int) $wpdb->get_var($wpdb->prepare("SELECT post_id FROM {$wpdb->postmeta} AS pm_date, {$wpdb->posts} WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_date' AND post_name = %s" . $date_query, $post_type, get_query_var('name')));
        if (!$id) {
            // Check to see if an old slug matches the old date
            $id = (int) $wpdb->get_var($wpdb->prepare("SELECT ID FROM {$wpdb->posts}, {$wpdb->postmeta} AS pm_slug, {$wpdb->postmeta} AS pm_date WHERE ID = pm_slug.post_id AND ID = pm_date.post_id AND post_type = %s AND pm_slug.meta_key = '_wp_old_slug' AND pm_slug.meta_value = %s AND pm_date.meta_key = '_wp_old_date'" . $date_query, $post_type, get_query_var('name')));
        }
    }
    return $id;
}