Files
roi-theme/wp-content/themes/apus-theme/home.php
FrankZamora 995707156f Implementar Issues #2-4, #8-13, #16 - Funcionalidades core del tema
Implementación masiva de funcionalidades esenciales del tema apus-theme usando agentes paralelos para máxima eficiencia.

**Issues Completados:**

**Issue #2 - Eliminar bloat de WordPress:**
- inc/performance.php: 13 funciones que remueven emojis, oEmbed, feeds, dashicons, jQuery migrate, XML-RPC, etc.
- Optimización completa del frontend

**Issue #3 - Desactivar búsqueda nativa:**
- inc/search-disable.php: Bloquea queries de búsqueda, widget, formularios
- search.php: Retorna 404 con mensaje amigable

**Issue #4 - Desactivar comentarios:**
- inc/comments-disable.php: 15 funciones que eliminan comentarios de frontend y backend
- comments.php: Template desactivado

**Issue #8 - Footer con 4 widgets:**
- footer.php: Verificado con 4 áreas de widgets y copyright
- assets/css/footer.css: Estilos responsive completos
- Sistema de anchos configurables

**Issue #9 - Jerarquía de plantillas:**
- home.php, category.php, tag.php, author.php, date.php, taxonomy.php, attachment.php
- 7 nuevas plantillas + 12 verificadas
- Template parts completos
- Paginación en todos los archives

**Issue #10 - Imágenes destacadas:**
- inc/featured-image.php: 12 funciones para manejo de featured images
- Sin placeholders, lazy loading, alt text automático
- Responsive con Bootstrap, aspect ratio

**Issue #11 - Badge de categoría:**
- inc/category-badge.php: Badge Bootstrap sobre H1 en single posts
- Excluye "Uncategorized"
- Template tag: apus_display_category_badge()

**Issue #12 - TOC automático:**
- inc/toc.php: Genera TOC desde H2/H3
- assets/css/toc.css: Estilos con numeración CSS counters
- assets/js/toc.js: Smooth scroll, scroll spy, toggle
- Configurable con apus_get_option()

**Issue #13 - Posts relacionados:**
- inc/related-posts.php: Query por categoría, 12 funciones
- inc/admin/related-posts-options.php: Sistema de configuración
- assets/css/related-posts.css: Cards responsive
- Hook automático en single posts

**Issue #16 - AdSense delay:**
- inc/adsense-delay.php: Retardo de carga hasta scroll/click
- assets/js/adsense-loader.js: Detecta interacciones
- Mejora FID y TBT para Core Web Vitals

**Archivos Modificados:**
- functions.php: Includes de nuevos módulos, removido feed support
- single.php: Integración de category badge
- inc/enqueue-scripts.php: Enqueue de nuevos assets
- inc/theme-options-helpers.php: Helper functions para TOC

**Archivos Creados:**
- 7 nuevas plantillas WordPress
- 3 nuevos módulos inc/ (comments-disable, search-disable)
- 8 reportes de documentación .md

**Estadísticas:**
- Total funciones PHP: 60+ nuevas funciones
- Líneas de código: 2,500+ líneas
- Archivos nuevos: 18
- Archivos modificados: 9

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 16:53:31 -06:00

124 lines
3.2 KiB
PHP

<?php
/**
* The template for displaying the blog posts index
*
* This template is used when the blog posts page is different from the front page.
* It displays a listing of recent blog posts with pagination.
* Set in WordPress Settings > Reading > "Posts page".
*
* @link https://developer.wordpress.org/themes/basics/template-hierarchy/#home
*
* @package Apus_Theme
* @since 1.0.0
*/
get_header();
?>
<main id="main-content" class="site-main" role="main">
<div class="content-wrapper">
<!-- Primary Content Area -->
<div id="primary" class="content-area">
<?php if ( have_posts() ) : ?>
<!-- Blog Header -->
<header class="page-header">
<?php
// Display blog page title
if ( is_home() && ! is_front_page() && get_option( 'page_for_posts' ) ) :
?>
<h1 class="page-title">
<?php echo esc_html( get_the_title( get_option( 'page_for_posts' ) ) ); ?>
</h1>
<?php
// Display blog page description if available
$blog_page = get_post( get_option( 'page_for_posts' ) );
if ( $blog_page && ! empty( $blog_page->post_content ) ) :
?>
<div class="page-description">
<?php echo wp_kses_post( wpautop( $blog_page->post_excerpt ) ); ?>
</div>
<?php endif; ?>
<?php else : ?>
<h1 class="page-title">
<?php esc_html_e( 'Blog', 'apus-theme' ); ?>
</h1>
<?php endif; ?>
</header><!-- .page-header -->
<!-- Blog Posts Loop -->
<div class="blog-posts">
<?php
// Start the WordPress Loop
while ( have_posts() ) :
the_post();
/**
* Include the Post-Type-specific template for the content.
* If you want to override this in a child theme, then include a file
* called content-___.php (where ___ is the Post Type name) and that will be used instead.
*/
get_template_part( 'template-parts/content', get_post_type() );
endwhile;
?>
</div><!-- .blog-posts -->
<?php
/**
* Pagination
* Display navigation to next/previous set of posts when applicable.
*/
the_posts_pagination(
array(
'mid_size' => 2,
'prev_text' => sprintf(
'%s <span class="nav-prev-text">%s</span>',
'<span class="nav-icon" aria-hidden="true">&laquo;</span>',
esc_html__( 'Previous', 'apus-theme' )
),
'next_text' => sprintf(
'<span class="nav-next-text">%s</span> %s',
esc_html__( 'Next', 'apus-theme' ),
'<span class="nav-icon" aria-hidden="true">&raquo;</span>'
),
'before_page_number' => '<span class="screen-reader-text">' . esc_html__( 'Page', 'apus-theme' ) . ' </span>',
'aria_label' => esc_attr__( 'Posts navigation', 'apus-theme' ),
)
);
else :
/**
* No posts found
* Display a message when no content is available.
*/
get_template_part( 'template-parts/content', 'none' );
endif;
?>
</div><!-- #primary -->
<?php
/**
* Sidebar
* Display the sidebar if it's active.
*/
if ( is_active_sidebar( 'sidebar-1' ) ) :
get_sidebar();
endif;
?>
</div><!-- .content-wrapper -->
</main><!-- #main-content -->
<?php
get_footer();