private function find_historical_post($target_year) { historical_debug_log("Iniciando búsqueda de posts de hace " . $target_year . " años"); $today = current_time('timestamp'); $current_year = intval(date('Y', $today)); $target_year_full = $current_year - $target_year; // Construir un rango de búsqueda de ±1 año para encontrar más posts $start_year = $target_year_full - 1; $end_year = $target_year_full + 1; historical_debug_log("Buscando posts entre los años $start_year y $end_year"); $args = array( 'post_type' => 'post', 'posts_per_page' => -1, 'orderby' => 'date', 'order' => 'DESC', 'date_query' => array( 'after' => array( 'year' => $start_year, 'month' => 1, 'day' => 1, ), 'before' => array( 'year' => $end_year, 'month' => 12, 'day' => 31, ), 'inclusive' => true, ), 'post_status' => 'publish' ); $query = new WP_Query($args); historical_debug_log("Encontrados " . $query->post_count . " posts"); if ($query->have_posts()) { $posts = array(); $target_date = strtotime("$target_year_full-" . date('m-d')); // Recopilar todos los posts y sus diferencias de fecha while ($query->have_posts()) { $query->the_post(); $post_date = get_the_time('U'); $date_diff = abs($post_date - $target_date); $posts[] = array( 'diff' => $date_diff, 'data' => array( 'title' => get_the_title(), 'permalink' => get_permalink(), 'excerpt' => wp_trim_words(get_the_excerpt(), 20), 'date' => get_the_date(), 'thumbnail_url' => get_the_post_thumbnail_url(get_the_ID(), 'medium'), 'years_ago' => $target_year ) ); } // Ordenar por diferencia de fecha usort($posts, function($a, $b) { return $a['diff'] - $b['diff']; }); wp_reset_postdata(); // Retornar el post más cercano a la fecha objetivo if (!empty($posts)) { historical_debug_log("Retornando el post más cercano a la fecha objetivo"); return $posts[0]['data']; } } historical_debug_log("No se encontraron posts para el período solicitado"); wp_reset_postdata(); return null; }