Files
peptide-starter-theme/front-page.php
peptiderepo 9da702e746 v1.5.0: extend theme with navigation dropdowns, 9 page templates, auth UI, newsletter, contact panel
Major theme extension adding full-featured navigation with dropdown submenus (Tools, My Data, Resources),
9 new page templates (Calculator, Protocol Builder, Tracker, Subject Log, Documentation, Directory,
Science Feed, Profile, Sign In/Register), documentation page with sidebar ToC and scroll spy,
branded AJAX authentication forms, newsletter signup with admin export, slide-out contact/support panel,
Research Modules 6-card grid on front page, and comprehensive footer update.

Split functions.php (554→206 lines) into 6 focused inc/ modules: helpers, customizer, auth-handlers,
contact-handler, page-setup, newsletter-admin. All new components include dark mode support, CSRF
protection, input sanitization, output escaping, and graceful plugin degradation via shortcode_exists().

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 08:38:30 +07:00

101 lines
3.2 KiB
PHP

<?php
/**
* The front page template
*
* Layout: Hero → Research Modules → PRAutoBlogger posts → Peptide News feed.
* Newsletter signup is handled by footer.php (via template part) on the front page.
*
* @see template-parts/module-cards.php — research modules grid
* @see template-parts/newsletter-signup.php — included via footer.php on front page
* @see functions.php — helper functions for hero content
*
* @package peptide-starter
*/
get_header();
?>
<main id="main" class="site-main">
<!-- Hero Section -->
<section class="hero-section">
<div class="hero-content">
<h1 class="hero-title">
<?php
$hero_title = peptide_starter_get_hero_title();
// Wrap the last word in an accent span for the wavy underline effect.
$words = explode( ' ', $hero_title );
if ( count( $words ) > 1 ) {
$last_word = array_pop( $words );
echo esc_html( implode( ' ', $words ) ) . ' <span class="ps-hero-accent">' . esc_html( $last_word ) . '</span>';
} else {
echo esc_html( $hero_title );
}
?>
</h1>
<p class="hero-subtitle"><?php echo esc_html( peptide_starter_get_hero_subtitle() ); ?></p>
<!-- Hero Search (Peptide Search AI) -->
<div class="hero-search">
<?php
if ( shortcode_exists( 'peptide_search' ) ) {
echo do_shortcode( '[peptide_search placeholder="' . esc_attr( peptide_starter_get_search_placeholder() ) . '"]' );
} else {
?>
<form class="ps-search-form" method="get" action="<?php echo esc_url( home_url( '/' ) ); ?>">
<input
type="search"
name="s"
class="ps-search-input"
placeholder="<?php echo esc_attr( peptide_starter_get_search_placeholder() ); ?>"
value="<?php echo esc_attr( get_search_query() ); ?>"
>
</form>
<?php
}
?>
</div>
<!-- Hero CTAs -->
<div class="hero-ctas">
<a href="<?php echo esc_url( home_url( '/peptides' ) ); ?>" class="ps-btn ps-btn-primary">
<?php esc_html_e( 'Browse Peptides', 'peptide-starter' ); ?>
</a>
<a href="<?php echo esc_url( home_url( '/documentation' ) ); ?>" class="ps-btn ps-btn-secondary">
<?php esc_html_e( 'Documentation', 'peptide-starter' ); ?>
</a>
</div>
</div>
</section>
<!-- Research Modules Grid (6 cards) -->
<?php get_template_part( 'template-parts/module', 'cards' ); ?>
<!-- PRAutoBlogger Posts Widget -->
<?php
if ( shortcode_exists( 'prautoblogger_posts' ) ) {
echo do_shortcode( '[prautoblogger_posts count="6" title="' . esc_attr__( 'Latest Research & Insights', 'peptide-starter' ) . '" subtitle="' . esc_attr__( 'Evidence-based articles on peptides, protocols, and emerging research', 'peptide-starter' ) . '"]' );
}
?>
<!-- News Feed Section -->
<?php
if ( shortcode_exists( 'peptide_news' ) ) {
?>
<section class="news-feed-section">
<div class="ps-container">
<div class="news-feed-header">
<h2 class="news-feed-title"><?php esc_html_e( 'Latest Peptide Research', 'peptide-starter' ); ?></h2>
<p class="news-feed-description">
<?php esc_html_e( 'Stay updated with the latest developments in peptide science and research.', 'peptide-starter' ); ?>
</p>
</div>
<?php echo do_shortcode( '[peptide_news]' ); ?>
</div>
</section>
<?php
}
?>
</main>
<?php get_footer(); ?>