term_id)) return; $source_cat_id = (int) $cat->term_id; if (function_exists('pll_get_term')) { $spanish_cat_id = (int) pll_get_term($source_cat_id, 'es'); if ($spanish_cat_id) $source_cat_id = $spanish_cat_id; } if (!in_array($source_cat_id, [6, 22], true)) return; global $wpdb; $source_post_id = (int) $wpdb->get_var($wpdb->prepare( "SELECT p.ID FROM {$wpdb->posts} p INNER JOIN {$wpdb->term_relationships} tr ON tr.object_id = p.ID INNER JOIN {$wpdb->term_taxonomy} tt ON tt.term_taxonomy_id = tr.term_taxonomy_id WHERE tt.taxonomy = 'category' AND tt.term_id = %d AND p.post_type = 'post' AND p.post_status = 'publish' ORDER BY p.post_date DESC, p.ID DESC LIMIT 1", $source_cat_id )); if (!$source_post_id) return; $post_id = $source_post_id; if (function_exists('pll_current_language') && function_exists('pll_get_post')) { $lang = pll_current_language(); $translated = $lang ? (int) pll_get_post($source_post_id, $lang) : 0; if ($translated) $post_id = $translated; } $url = get_permalink($post_id); if (!$url) return; wp_safe_redirect($url, 302); exit; }, 9); // Mostrar 50 artículos por página en los archivos de cartas add_action("pre_get_posts", function($query) { if (!$query->is_main_query() || is_admin()) return; if ($query->is_category([ "cartasemana", "carta-semana-pasada", "cartas-de-otras-semanas", "letter-of-the-week", "lettre-de-la-semaine", "lettera-della-settimana", "carta-da-semana", "carta-semana-pasada-en", "carta-semana-pasada-fr", "carta-semana-pasada-it", "carta-semana-pasada-pt", "letters-from-other-weeks", "lettres-des-autres-semaines", "lettere-delle-altre-settimane", "cartas-de-outras-semanas", ])) { $query->set("posts_per_page", 50); } });