Complete Directory Tree
Root-Level Template Files
Front Page & Homepage
front-page.php
front-page.php
home.php and index.php for the front pageFeatures:- Custom hero section
- Featured content areas
- Business-specific homepage layout
Custom Post Type Templates
single-hinchable.php
single-hinchable.php
medidas- Dimensions/measurementscapacidad- Capacity (number of people)etiqueta_color- Color-coded category tag
- Bilingual content (Spanish/Euskera)
- Custom breadcrumb navigation
- Category-based color coding:
- Orange: Sports / Kirola
- Pink: Inflatable / Puzgarria
- Blue: Aquatic / Uretakoa
- Green: Event / Ekitaldia
- Purple: Game / Jokoa
single-hinchable.php:1single-evento.php
single-evento.php
- Event-specific layout
- Custom styling for event content
- Integration with evento custom post type
evento (registered in functions.php:171)URL Structure: /eventos/event-name/Page Templates
page-catalogo.php
page-catalogo.php
- Category filtering interface
- Custom taxonomy query (
tipo_hinchable) - Bilingual UI elements
- Custom category ordering
- Hinchables/Puzgarriak (Inflatables)
- Acuáticos/Uretakoak (Aquatic items)
- Deportivos/Kirol atrakzioak (Sports attractions)
- Juegos/Jokoak (Games)
page-catalogo.php:1page-eventos.php
page-eventos.php
- Events grid or list layout
- Event filtering capabilities
- Integration with evento post type
page.php
page.php
- Clean page layout
- Loads
template-parts/content-page.php - Supports comments if enabled
Blog & Content Templates
single.php
single.php
- Post metadata (date, author, categories)
- Featured image display
- Comments section
- Post navigation
archive.php
archive.php
- Archive title and description
- Post loop with
template-parts/content.php - Pagination
search.php
search.php
- Search query display
- Results count
- Loads
template-parts/content-search.php - “No results” handling with
template-parts/content-none.php
404.php
404.php
- User-friendly error message
- Search widget
- Suggested content
- Custom styling
index.php
index.php
- Generic content loop
- Works for any content type
- Simple, reliable layout
Partial Templates
header.php
header.php
<head>section withwp_head()- Site logo/branding
- Primary navigation menu
- Mobile menu toggle
get_header() in all templatesLocation: header.php:1header_copia.php
header_copia.php
footer.php
footer.php
sidebar.php
sidebar.php
comments.php
comments.php
Core Configuration Files
Theme Functions
functions.php (236 lines)
functions.php (236 lines)
Theme Setup (Lines 18-90)
- Loads text domain:
zalbi - Registers navigation menus:
menu-1(Primary)menu-legal(Legal Footer)
- Adds theme supports:
title-tagpost-thumbnailshtml5custom-backgroundcustom-logo
Widget Registration (Lines 103-116)
- Registers sidebar:
sidebar-1
Scripts & Styles (Lines 121-135)
- Enqueues:
style.css(theme styles)navigation.js(mobile menu)- Font Awesome 6.4.0
- Google Fonts (Nunito, Open Sans)
Custom Post Type: Hinchable (Lines 138-150)
- Post type:
hinchable - Slug:
catalogo - Supports: title, editor, thumbnail, excerpt
- Icon:
dashicons-smiley
Custom Taxonomy (Lines 153-168)
- Taxonomy:
tipo_hinchable - Applied to:
hinchable - Hierarchical: yes
- Slug:
tipo
Custom Post Type: Evento (Lines 171-183)
- Post type:
evento - Slug:
eventos - Supports: title, editor, thumbnail, excerpt
- Icon:
dashicons-calendar-alt
WhatsApp Customizer (Lines 186-208)
- Setting:
zalbi_whatsapp_number - Section: “Botón WhatsApp”
- Field type: text
- Description: Phone number with country code
Include Files (Lines 213-235)
inc/custom-header.phpinc/template-tags.phpinc/template-functions.phpinc/customizer.phpinc/jetpack.php(conditional)
functions.php:1Include Directory (inc/)
inc/template-tags.php (4,770 bytes)
inc/template-tags.php (4,770 bytes)
inc/template-functions.php (913 bytes)
inc/template-functions.php (913 bytes)
zalbi_body_classes($classes)
- Modifies body CSS classes
- Adds contextual classes
- Enhances styling capabilities
zalbi_pingback_header()
- Adds pingback URL to header
- Supports WordPress pingback feature
body_classfilterwp_headaction
inc/template-functions.php:1inc/customizer.php (1,718 bytes)
inc/customizer.php (1,718 bytes)
- Live preview support
- Custom theme options
- Sanitization callbacks
- Transport methods
js/customizer.js for live updatesHook: customize_registerLocation: inc/customizer.php:1inc/custom-header.php (1,880 bytes)
inc/custom-header.php (1,880 bytes)
- Header image support
- Header text color customization
- Responsive header images
- Default header configuration
custom-headerLocation: inc/custom-header.php:1inc/jetpack.php (1,546 bytes)
inc/jetpack.php (1,546 bytes)
- Infinite scroll support
- Social sharing configuration
- Content options integration
defined( 'JETPACK__VERSION' )Location: inc/jetpack.php:1Template Parts Directory (template-parts/)
template-parts/content.php (1,423 bytes)
template-parts/content.php (1,423 bytes)
- Post title
- Post metadata (via template tags)
- Post excerpt or content
- Featured image
- Read more link
archive.phpindex.php- Search results
get_template_part( 'template-parts/content', get_post_type() )template-parts/content-page.php (1,206 bytes)
template-parts/content-page.php (1,206 bytes)
- Page title
- Page content (
the_content()) - Comments template call
- Edit link
page.phpCalled By: get_template_part( 'template-parts/content', 'page' )template-parts/content-search.php (883 bytes)
template-parts/content-search.php (883 bytes)
- Post title linked to permalink
- Post excerpt
- Post metadata (lighter than default)
search.phpCalled By: get_template_part( 'template-parts/content', 'search' )template-parts/content-none.php (1,256 bytes)
template-parts/content-none.php (1,256 bytes)
- Search: “Nothing found” + search form
- Archive: “Nothing found” + suggestions
- 404: Handled in
404.phpinstead
archive.phpsearch.php
get_template_part( 'template-parts/content', 'none' )JavaScript Directory (js/)
js/navigation.js (1,850 bytes)
js/navigation.js (1,850 bytes)
js/customizer.js (1,011 bytes)
js/customizer.js (1,011 bytes)
- Real-time site title updates
- Bloginfo live preview
- Background color updates
- Text color changes
inc/customizer.phpjs/navigation copy 1.js (2,980 bytes)
js/navigation copy 1.js (2,980 bytes)
Assets Directories
Images (img/)
img/logo.webp (994KB)
img/logo.webp (994KB)
Translations (languages/)
languages/zalbi.pot (4,632 bytes)
languages/zalbi.pot (4,632 bytes)
- All translatable strings from theme
- Context for translators
- String references (file:line)
zalbiLanguages Supported: Spanish (default), Euskera (via Polylang)languages/readme.txt (322 bytes)
languages/readme.txt (322 bytes)
- How to translate the theme
- POT file usage
- Translation workflow
Stylesheets
style.css (42,100 bytes)
style.css (42,100 bytes)
- Theme Name: zalbi-theme
- Version: 1.0.0
- Author: Yeray Garrido
- Text Domain: zalbi
- Based on: Underscores (_s)
- Generic (Normalize, Box sizing)
- Base (Typography, Elements, Links, Forms)
- Layouts
- Components (Navigation, Posts, Comments, Widgets, Media)
- Plugins (Jetpack)
- Utilities (Accessibility, Alignments)
style-rtl.css)style-rtl.css (16,934 bytes)
style-rtl.css (16,934 bytes)
Configuration Files
composer.json
composer.json
- PHP CodeSniffer
- WordPress Coding Standards
lint:wpcs- Code style checkinglint:php- PHP syntax validationmake-pot- Generate translation file
package.json
package.json
compile:css- SASS to CSS compilationcompile:rtl- RTL stylesheet generationwatch- Watch and recompile SASSlint:scss- SCSS lintinglint:js- JavaScript lintingbundle- Create distribution ZIP
phpcs.xml.dist
phpcs.xml.dist
vendor/, node_modules/Documentation & Meta Files
README.md
README.md
- Installation instructions
- Development setup
- CLI commands
- Underscores framework info
- Theme customization guide
readme.txt
readme.txt
- Theme description
- Installation instructions
- Changelog
- Credits
LICENSE (18,046 bytes)
LICENSE (18,046 bytes)
screenshot.png (264 bytes)
screenshot.png (264 bytes)
Legacy Directory (_zalbi/)
_zalbi/ directory contains a complete backup of the theme files from a previous version.- Keep for version history if needed
- Remove from production to reduce file size
- Consider using version control (Git) instead
File Count Summary
Template Files
Include Files
inc/ directoryTemplate Parts
template-parts/ directoryJavaScript
js/ directoryAssets
Configuration
File Naming Conventions
Template Files
- Lowercase with hyphens:
single-evento.php - Descriptive names:
page-catalogo.php - WordPress hierarchy:
404.php,archive.php
Include Files
- Descriptive purpose:
template-tags.php - Hyphenated words:
custom-header.php - Organized in
inc/directory
JavaScript Files
- Lowercase, descriptive:
navigation.js - Purpose-based naming:
customizer.js
Styles
- Main file:
style.css(required) - Variants:
style-rtl.css
Maintenance Recommendations
Remove Duplicates
header_copia.phpjs/navigation copy 1.js_zalbi/directory (if version controlled)
Optimize Assets
img/logo.webp(994KB → consider 100-200KB)- Generate responsive image sizes
Update Screenshot
screenshot.png:- Current: 264 bytes (too small)
- Recommended: 1200x900px
- Show actual theme design
Version Control
- Remove
_zalbi/backup directory - Commit regularly
- Tag releases
- Comment list display
- Comment form
- Password-protected post handling
- No comments state
Called By:comments_template()in single posts/pages