---Ring
---Turn
---Ray
---AhDo
---AhGo
---AhSa
---AhTa
---SaOnDo
Mathorian Kagodora
🔵 Wallet
Building a custom them for BaOmBaKaTaRa.com Ray 2051 May 19

Building a custom them for BaOmBaKaTaRa.com Ray 2051 May 19

May 19, 2026 | by | 0 comments

Baombakatara Custom WordPress Theme – Complete Summary & Build Documentation

This document summarises the entire development of the Baombakatara custom WordPress theme. Use it to understand the architecture, replicate the setup, or continue integrating additional features (points system, surveys, etc.). The theme is built from scratch, with no third‑party page builders or premium themes – only custom code.


🧱 Theme Structure & Key Files

FilePurpose
style.cssTheme metadata (name, author, description). Minimal styling; most CSS is in template files.
functions.phpAll theme setup, custom post types, custom fields, enqueues, duplication, block editor support, Customizer settings.
header.phpFixed red clock bar (compact digital clock + Kagodora logo), transparent main header (custom logo, site title, navigation menu).
footer.phpSimple footer with copyright, wp_footer() hook.
front-page.phpScroll‑snap homepage that loops through custom post type “Homepage Sections”.
page.phpIndividual page template: full‑width hero image (featured image) at top, white content area below.
single.php(Optional) For blog posts – not built yet.
page-home.php(Not used – we use static front page with page.php.)
/js/compact-clock.jsFetches authoritative time from kagodora.com API, updates the clock values in the red bar.
/assets/logo.pngPlaceholder for the custom logo (can be overridden via Customizer).
/js/editor.jsEmpty file for block editor enqueue (required to avoid missing file errors).

⏰ Compact Clock (Red Bar)

Features

JavaScript (compact-clock.js)


📌 Header (Main Header – Below Red Bar)

Structure

Customizer Controls (in functions.php)

SectionSettingDefaultWhat it controls
Header BackgroundBackground colourtransparent.main-header, .logo-area background colour.
Header BackgroundBackground image(empty)Background image (overrides colour).
Header TextSite Title Colour#ffffffColour of the .site-title text.
Menu TextMenu Text Colour#ffffffColour of .main-menu li a links.
Page TitlesPage Title Colour#1e3a8aColour of <h1> inside .page-content-area (individual pages).

All customizer CSS is output inline in <head> with !important to override any inline styles.


🏠 Homepage (Scroll‑Snap Sections)

Custom Post Type: section

Template: front-page.php


📄 Individual Pages (e.g., Farm, Water, Retreat)

Template: page.php

Notes


🧩 functions.php – Key Components

Theme Setup

Custom Post Type: Homepage Sections

Custom Field: Button Link

Duplicate Post Functionality

Block Editor Support

Customizer Sections

Enqueues


🛠️ Major Issues Resolved

IssueSolution
JSON error when saving postsPlugin conflict with custom AJAX actions. Fixed by isolating plugin code (not a theme issue).
Missing “Set featured image” boxAdded add_theme_support('post-thumbnails') and ensured thumbnail support in CPT registration. User also needed to enable via Screen Options.
Scroll‑snap jumping, menu hiddenUsed scroll-margin-top on sections (120px) and removed padding-top from container. Adjusted to match fixed header height.
Hero image not full width, gaps on sidesUsed left: 50%; margin-left: -50vw; width: 100vw; trick to force full viewport width.
Default background image showing over page heroConditionally hid .full-bg when page has a featured image (inline CSS).
Header had white backgroundRemoved !important from inline styles and used Customizer CSS with !important to override.
Customizer site title / menu text / page title not updatingAdded specific CSS selectors and output in <head> with high priority (99).
Logo and site title not editableAdded native custom logo support and used bloginfo('name').
Compact clock not syncing with kagodora.comCreated REST API endpoint on kagodora.com and modified JS to fetch and re‑sync every minute.

📦 Dependencies & External APIs

Leave a Reply

Your email address will not be published. Required fields are marked *