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>
3.3 KiB
Peptide Starter Theme
WordPress theme for peptiderepo.com — a scientific peptide reference database.
Repository
- GitHub:
peptiderepo/peptide-starter-theme(private) - Branch:
mainis the production branch - Live site: https://peptiderepo.com
- Hosting: Hostinger shared hosting
Deploy
Push to main triggers GitHub Actions → rsync via SSH to Hostinger.
No CI lint step — the deploy workflow (deploy.yml) runs rsync directly.
LiteSpeed cache is purged automatically after deploy.
Theme path on server: ~/domains/peptiderepo.com/public_html/wp-content/themes/peptide-starter/
Architecture
This is a classic WordPress theme (no block/FSE). All styling is in style.css (no build step, no preprocessor). JavaScript is vanilla — no bundler.
Key files
| File | Purpose |
|---|---|
style.css |
All theme CSS (~44KB). Organized: reset → tokens → typography → globals → components → regions → pages → animations → a11y → dark mode → responsive |
functions.php |
Theme setup, script enqueueing, Customizer registration, nav walker, helper functions |
front-page.php |
Home page: hero section → PRAutoBlogger widget → Peptide News feed |
header.php |
Global header with nav, dark mode toggle, mobile menu |
footer.php |
4-column widget footer with copyright |
archive-peptide.php |
Peptide CPT archive grid |
single-peptide.php |
Single peptide detail page |
assets/js/navigation.js |
Mobile menu and nav functionality |
assets/js/theme.js |
Dark mode toggle, theme utilities |
Template parts
template-parts/content.php— Post/page content looptemplate-parts/content-peptide.php— Peptide card in archivetemplate-parts/content-none.php— Empty state
Coding Conventions
- PHP: WordPress coding standards — tabs for indentation, Yoda conditions, braces on same line
- CSS: No preprocessor. Use CSS custom properties (defined in
:root). All theme classes prefixed.ps- - JS: Vanilla ES6+, no build step. Files in
assets/js/must passnode --check - No
!importanton global elements — prevents plugin conflicts - Plugin CSS namespaces are untouched (
.pn-*for Peptide News,.psa-*for Peptide Search AI,.prab-*for PRAutoBlogger)
Design System
- Font: Inter (Google Fonts) with system fallback
- Scale: 1.125x modular, 8px grid base
- Primary color:
#0066CC(light) /#3B82F6(dark) - Breakpoints: 480px, 768px, 1024px, 1440px (mobile-first)
- Dark mode: CSS custom properties swap via
html[data-theme="dark"]orprefers-color-scheme: dark
Plugin Integration
The theme integrates with three companion plugins via shortcodes, all wrapped in shortcode_exists() for graceful degradation:
- Peptide Search AI (
[peptide_search]) — AI search in hero section - Peptide News (
[peptide_news]) — News feed on front page - PRAutoBlogger (
[prautoblogger_posts]) — Auto-generated research articles on front page
Customizer Options
Editable via Appearance → Customize:
- Hero title, subtitle, search placeholder
- Footer copyright text
- Dark mode default on/off
Version
Current: v1.3.1 (defined in style.css header and PEPTIDE_STARTER_VERSION constant in functions.php)
When bumping version, update both locations.