<?php
/**
 * Plugin Name: Fe Adulta — Carta de la Semana
 * Description: Redirige las URLs de carta al archivo de categoría correspondiente.
 * Version: 1.7
 */

// Redirigir las páginas custom a las categorías
add_action("template_redirect", function() {
    if (is_page("carta-de-la-semana")) {
        wp_redirect(home_url("/category/cartasemana/"), 302);
        exit;
    }
    if (is_page("la-semana-pasada")) {
        wp_redirect(home_url("/category/carta-semana-pasada/"), 302);
        exit;
    }
});

// Si la categoría tiene un solo artículo, ir directamente a él en el idioma actual
// (stop-redirects.php desactiva redirect_canonical que haría esto automáticamente)
add_action("template_redirect", function() {
    if (!is_category()) return;
    $cat = get_queried_object();
    if (!$cat || $cat->count != 1) return;
    $posts = get_posts([
        'cat'         => $cat->term_id,
        'numberposts' => 1,
        'post_status' => 'publish',
    ]);
    if (!$posts) return;
    $post_id = $posts[0]->ID;
    // Buscar la traducción al idioma actual
    if (function_exists('pll_current_language') && function_exists('pll_get_post')) {
        $lang = pll_current_language();
        if ($lang) {
            $translated = pll_get_post($post_id, $lang);
            if ($translated) $post_id = $translated;
        }
    }
    wp_redirect(get_permalink($post_id), 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", "cartas-de-otras-semanas", "carta-semana-pasada",
        "cartas-de-otras-semanas-en", "cartas-de-otras-semanas-fr",
        "cartas-de-otras-semanas-it", "cartas-de-otras-semanas-pt",
        "cartasemana-en", "cartasemana-fr", "cartasemana-it", "cartasemana-pt"])) {
        $query->set("posts_per_page", 50);
    }
});
