prepare($countSql); $stmt->execute($params); $totalPosts = (int)$stmt->fetchColumn(); $totalPages = max(1, ceil($totalPosts / POSTS_PER_PAGE)); // Fetch posts $sql = "SELECT p.*, c.name AS category_name, c.slug AS category_slug FROM blog_posts p LEFT JOIN blog_categories c ON p.category_id = c.id $where ORDER BY p.published_at DESC LIMIT :limit OFFSET :offset"; $stmt = $db->prepare($sql); foreach ($params as $k => $v) { $stmt->bindValue($k, $v, PDO::PARAM_STR); } $stmt->bindValue(':limit', POSTS_PER_PAGE, PDO::PARAM_INT); $stmt->bindValue(':offset', $offset, PDO::PARAM_INT); $stmt->execute(); $posts = $stmt->fetchAll(); // Fetch categories for sidebar $categories = $db->query("SELECT c.*, COUNT(p.id) AS post_count FROM blog_categories c LEFT JOIN blog_posts p ON c.id = p.category_id AND p.status = 'published' GROUP BY c.id ORDER BY c.name")->fetchAll(); // Current category name $currentCatName = ''; if ($catSlug !== '') { foreach ($categories as $cat) { if ($cat['slug'] === $catSlug) { $currentCatName = $cat['name']; break; } } } $pageTitle = $currentCatName ? e($currentCatName) . ' - Blog TRIMAPE' : 'Blog - TRIMAPE | Excelencia en Mantenimientos'; $pageDesc = $currentCatName ? 'Artículos sobre ' . e($currentCatName) . ' en el blog de TRIMAPE.' : 'Artículos sobre mantenimiento industrial, eficiencia energética y más. Blog de TRIMAPE.'; ?> <?= $pageTitle ?>

BLOG

TRIMAPE | EXCELENCIA EN MANTENIMIENTOS

Próximamente

Estamos preparando contenido increíble para ti. ¡Vuelve pronto!

1): ?>
Categorías
¿Necesitas mantenimiento industrial?

Contáctanos y recibe una cotización sin compromiso.

CONTACTO