Skip to content

Site Updates

📌 Site Status Update – May 25, 2026

CPT Excerpt Migration for Yoast SEO Meta Descriptions

A major cleanup pass was completed for excerpt generation across custom post types (CPTs), with the goal of improving search result snippets and making Yoast SEO descriptions more consistent without requiring manual meta entry for every piece of content.

The site already stores normalized plain-text versions of content in custom fields such as quote_plain_text, lyric_plain_text, excerpt_plain_text, and definition. Since Yoast can automatically use the WordPress excerpt field as the meta description fallback, the solution was to migrate meaningful CPT text into post_excerpt so search engines receive cleaner, context-aware snippets.

Earlier versions of these scripts artificially truncated content and appended ..., which introduced formatting issues (including awkward spacing before ellipses and cut-off sentences). After review, the strategy was simplified: preserve the full semantic text and allow search engines or UI layers to truncate naturally when displaying snippets. This keeps excerpts readable in the admin while also producing stronger metadata for search.

For quotes, a controlled rebuild script was used to overwrite existing excerpts (many of which still contained legacy truncation artifacts) and regenerate them from the normalized plain-text source.

Quote → Excerpt Migration Script

for id in $(wp post list \
  --post_type=quote \
  --post_status=any \
  --orderby=date \
  --order=DESC \
  --format=ids); do

  quote=$(wp post meta get $id quote_plain_text)

  if [ -n "$quote" ]; then

    clean=$(echo "$quote" | tr '\n' ' ' | tr -s ' ')

    echo "[$id] Rebuilding excerpt from quote_plain_text"

    wp post update $id --post_excerpt="$clean"

  else
    echo "[$id] Skipping (no quote_plain_text)"
  fi

done

How the Script Works

The script loops through every Quote CPT entry using WP-CLI and processes newest posts first (--orderby=date --order=DESC) for safer migration behavior.

For each post:

  • It retrieves the quote_plain_text custom field.
  • Line breaks are normalized into spaces (tr '\n' ' ').
  • Consecutive whitespace is compressed (tr -s ' '), preventing formatting oddities.
  • The cleaned text is written into post_excerpt.

Once migrated, Yoast automatically uses these excerpts as fallback meta descriptions for search snippets, meaning quote content now surfaces meaningfully in search engine previews without requiring manually authored SEO descriptions for every entry.

This establishes a repeatable architecture that can be reused across Lyrics, Excerpts, and other text-heavy CPTs, allowing structured content to remain semantically rich while reducing SEO maintenance overhead.

📌 Site Status Update – May 24, 2026

Bulk Topic & Theme Taxonomy Import System

A new WP-CLI based taxonomy import workflow was successfully implemented for the lyric CPT system. The goal was to bulk-assign topic and theme taxonomy terms to previously created lyric entries using a CSV export structure. This solved the problem of older content existing before the newer structured tagging workflow was fully established.

The CSV format used was intentionally simple and scalable:

id,add_topics,add_themes
27298,"Earth|Change|Motion","Round and Round|The World Got Still|As the World Turns"

Each row contains:

  • the target CPT ID
  • pipe-separated topic terms
  • pipe-separated theme terms

A reusable WP-CLI import script was created and tested successfully against ~100 lyric entries. The script:

  • validates the CPT type before processing
  • preserves existing taxonomy relationships
  • merges new terms safely
  • avoids duplicate term assignment
  • provides CLI logging/output during imports
  • supports repeatable/idempotent reruns safely

The import process was ultimately used to retroactively update older lyrics that had not yet received structured topic and theme taxonomy assignments.

Final usage pattern:

wp eval-file import-lyric-tags.php tags.csv

Optional dry-run mode:

wp eval-file import-lyric-tags.php tags.csv dry-run

Key implementation detail discovered during testing:
the site uses custom topic and theme taxonomies rather than native WordPress post_tag. Early tests mistakenly wrote to post_tag, creating unused “ghost” terms with zero usage counts. These were safely identified and removed afterward using WP-CLI cleanup commands.

Critical taxonomy correction:

// WRONG
'post_tag'

// CORRECT
'topic'

Core taxonomy merge logic used by the final importer:

$existing = wp_get_post_terms(
    $post_id,
    'topic',
    ['fields' => 'names']
);

$merged = array_unique(array_merge($existing, $topics));

$result = wp_set_post_terms(
    $post_id,
    $merged,
    'topic',
    false
);

The importer can now be reused across other CPT systems (such as excerpts, fragments, chapters, etc.) simply by changing the CPT validation check:

if (get_post_type($post_id) !== 'excerpt') {
    WP_CLI::log("Skipping {$post_id} (not excerpt)");
    $skipped++;
    continue;
}

This establishes a scalable bulk taxonomy maintenance workflow for the broader structured content architecture of the site. Future imports can now be performed quickly whenever taxonomy tagging falls behind content creation.

📌 Site Status Update – May 23, 2026

Development update: the Topics, Themes, and Portal systems were substantially restructured into a clearer semantic hierarchy that now reflects how content “graduates” across the site. Topics and Themes were redesigned into layered directory systems instead of flat taxonomies. Both now distinguish between fully developed Portal Pages, high-usage “Emerging” entries, and the broader long-tail archive beneath them. The old duplicate labeling system (“Portal Page”) was removed entirely and replaced with explicit structural sections that communicate status through hierarchy itself. Cross-navigation was also added between Topics and Themes so users can move laterally between conceptual and symbolic taxonomies without returning to the homepage.

The Topics directory received the largest upgrade with the introduction of a new “Lexicon Topics” layer tied directly to the Concept CPT system. Topics are now organized into four semantic levels: Topic Portals, Emerging Topics, Lexicon Topics, and All Other Topics. This makes the site ontology visible in the frontend and creates a scalable promotion path where ordinary tags can evolve into lexicon-supported concepts and eventually into full portals. Because every Concept CPT already maps to a Topic taxonomy term, this creates a much cleaner long-term architecture for organizing related concepts without relying exclusively on manual concept-to-concept relationship mapping. The structure now clearly distinguishes between simple organizational tags and topics important enough to deserve dedicated conceptual definitions.

The Portal Grid template was also redesigned to match this new taxonomy architecture. Portal sections are now explicitly labeled as “Topic Portals” and “Theme Portals,” each with explanatory descriptions clarifying their role in the ecosystem. Direct links were added beneath both sections so users can jump into the full Topics or Themes directories from the portal grid itself, creating stronger navigational continuity between high-level portals and the larger taxonomy systems beneath them. Overall, the site now presents a far more coherent and scalable semantic structure where topics, themes, concepts, and portals feel like interconnected layers of a single evolving knowledge architecture rather than separate disconnected systems.

📌 Site Status Update – May 22, 2026

Top Content pages have been fully redesigned into a curated multi-section editorial system. Instead of displaying all content types on a single overwhelming archive page, the new structure now uses dynamic section navigation powered by URL views (?view=), allowing visitors to browse Narrative Threads, Narrative Episodes, Images, Lyrics, Excerpts, and Quotes individually. The system defaults to Narrative Threads while providing clear top-level navigation between curated content categories. Navigation styling, active-state highlighting, spacing, typography, and vertical rhythm were all refined to create a more compact, readable, and intentional browsing experience across desktop and mobile devices.

Narrative Threads (chapters) and Narrative Episodes (fragments) were elevated into visual editorial sections using large featured-image cards similar to cover blocks, helping important longform narrative content surface more effectively throughout the site. Lyrics, Excerpts, and Quotes were also redesigned to remove repetitive generic labels in favor of direct clickable post titles, creating a cleaner presentation and stronger content identity. All sections now sort alphabetically and support significantly larger curated limits, making the system scalable for future expansion without major architectural changes.

A new curated Images section was also integrated into the Top Content framework using a dedicated responsive square-grid layout based on the site’s existing image gallery system. The image implementation preserves uniformity across mixed aspect ratios using object-fit: cover and scalable CSS grid controls while allowing larger editorial presentation than the standard gallery archive. Footer navigation was expanded to include direct links to the full Narrative Threads, Narrative Episodes, Lyrics, Excerpts, and Quotes archive pages, further improving discoverability and longform navigation throughout the site.

📌 Site Status Update – May 21, 2026

Dev Site Update — Portal Revamp Complete

The Portal system revamp has now been completed and represents a major improvement to the site’s semantic browsing structure. Portal pages were transformed from simple flat CPT lists into structured thematic indexes with sectional rendering, custom content handling per CPT, and a far more editorial presentation layer. Concepts now use their dedicated definition fields, quotes/excerpts/lyrics pull proper plain-text fields instead of rendered page output, and all major media CPTs now display relevant cover imagery pulled contextually from sources, albums, books, films, or assigned graphics. The overall layout was refined significantly with smaller image sizing, denser grids, trimmed content previews, and tighter section spacing to create a cleaner and more readable semantic atlas experience.

The Portal architecture itself also clarified several larger structural insights about the site. Portals are no longer being viewed as simple taxonomy archives, but instead as semantic aggregation systems that connect meaning across CPTs. During development it became increasingly clear that future evolution will likely involve hierarchical portal structures, semantic trails, relationship density systems, and discovery-oriented browsing rather than purely chronological or media-type navigation. The distinction between archive pages, portal pages, and future curated collection pages also became much clearer: archives store everything, portals show relationships, and curated pages communicate importance.

Development has now shifted toward a new “Top Content” system, which is still actively being worked on. This new layer is intended to function as a curated editorial surface above raw archives and portals, focused specifically on fully rendered excerpts, lyrics, and quotes. Rather than compressing content into cards or previews, the new system renders actual cover block layouts using the_content() to preserve the immersive presentation of each CPT. Current implementation includes top navigation switching between Quotes, Excerpts, and Lyrics using manually assigned theme tags such as top-excerpts, top-lyrics, and top-quotes. This system is expected to become one of the primary entry points into the archive moving forward.

📌 Site Status Update – May 17, 2026

The site now includes a dedicated Video CPT and “Video Room” archive intended to curate visually significant media across the broader archive. While most videos previously existed indirectly through Songs or References, this new structure allows selected videos to exist as their own navigable media objects, complete with contextual relationships, footnote integration, and dedicated presentation pages.

The new system supports parent inheritance from Songs while remaining flexible enough for standalone videos, essays, interviews, references, or future creator-based content. Video entries can inherit YouTube URLs and artist metadata from parent Songs while overriding screenshots and presentation imagery for curated visual emphasis. Footnotes, navigation, and archive layouts have also been expanded to support cinematic thumbnail grids and internal video discovery without relying on direct YouTube embedding throughout the site.

📌 Site Status Update – May 10, 2026

🧭 Current Phase: Semantic Tooling & Taxonomy Expansion

Development has increasingly shifted beyond basic content organization and into the construction of a broader semantic framework for navigating and managing the site. A major focus of this phase has been the creation of a modular Admin Tools system designed to expose the underlying structure of the project in a more transparent and interactive way.

What began as a small collection of utility pages has now evolved into a centralized toolkit for content discovery, taxonomy refinement, media exploration, relationship visualization, and large-scale tagging workflows. These tools are serving both as development utilities and as experimental interfaces for understanding how the site’s growing content graph behaves over time.

🛠️ Admin Tools Framework & Public Utilities

The Admin Tools system was rebuilt into a modular template-part architecture using reusable routing and shared navigation components. This allows new tools to be added rapidly without rebuilding templates or duplicating logic.

Several new utilities were added during this phase, including:

  • A public Media Library Explorer for browsing thousands of published image attachments in bulk.
  • A Footnotes Viewer capable of rendering modular shortcode-based references for Chapters and Fragments.
  • Relationship visualization tools exposing ACF relationships, taxonomy links, and metadata across custom post types.
  • Newest Content and Site Index integrations migrated into the centralized Admin Tools framework.
  • Lightweight content exploration tools for filtering and searching across all published CPTs in real time.

Together, these systems are increasingly blurring the line between administrative tooling and public-facing exploratory interfaces.

🔎 Semantic Discovery & Portal Development

A major development during this phase was the introduction of semantic discovery workflows used to identify emerging topic and theme clusters across the site.

Two complementary systems were created:

  • A Live Content Filter focused on title-based precision matching.
  • A Live Content Search tool powered by native WordPress search behavior and Relevanssi indexing.

These tools make it possible to rapidly identify high-frequency concepts, extract CPT-specific ID groupings, and feed those results into automated taxonomy workflows using WP-CLI. This process significantly accelerates the creation and refinement of Topics, Themes, and Portal Pages.

An important structural pattern has now emerged:

high-frequency tags → promoted portals → exposure of secondary semantic clusters

As dominant tags are promoted into curated portal pages, new emerging concepts naturally rise into visibility, creating a self-reinforcing taxonomy refinement cycle that can be periodically revisited and expanded over time.

🧩 Portal System Refinement

Portal pages themselves are also evolving beyond simple taxonomy archives.

Previously, portal results were displayed as flat alphabetical lists regardless of content significance. The portal system has now been restructured to prioritize entries semantically, grouping conceptual and narrative content ahead of peripheral references and entity pages.

For example, concepts, quotes, songs, excerpts, chapters, and fragments are now surfaced before artists, organizations, profiles, and media references. This creates a more intentional reading flow and allows portal pages to function more like curated semantic hubs than conventional archives.

Additional refinement of portal ordering and grouping behavior is planned in future updates.

⚙️ Automation & Taxonomy Governance

One of the more significant backend developments was the creation of a lightweight taxonomy automation pipeline connecting:

  • content discovery tools,
  • grouped CPT-aware ID exports,
  • and WP-CLI batch tagging scripts.

This workflow enables rapid semantic tagging operations across multiple custom post types simultaneously while still preserving manual review and editorial control.

The broader goal is not simply to organize content, but to continuously govern and refine the site’s semantic structure over time. High-frequency topics and themes are periodically evaluated and promoted into portals, allowing newer conceptual clusters to surface organically as the project continues to expand.

The result is an increasingly dynamic knowledge system where content relationships evolve alongside the site itself rather than remaining static after publication.


📌 Site Status Update – April 15, 2026

🧭 Current Phase: Post-CPT Expansion & System Refinement

The site has now fully transitioned into a structured content system — with nearly all material successfully converted into custom post types. This marks a major milestone, shifting the project from raw consolidation into a more flexible and scalable phase.

With the foundational structure now in place, the focus moves toward refining how these content types interact. This includes improving relationships between entities, standardizing attribution across different media types, and resolving edge cases that emerged during the conversion process. The system is no longer just being built — it is now being shaped into a cohesive, relational framework.


🧩 Structural Refinement & Content Logic

With CPT conversion largely complete, attention is now on improving internal logic and consistency across the site. Several key areas are being addressed:

  • Clarifying the role of modular “elements” and how they integrate into larger content (chapters and fragments).
  • Refining the reference and attribution system to support books, films, games, and other media more uniformly.
  • Expanding CPT coverage (such as video games) to replace older reference-based placeholders.
  • Standardizing how content aggregates across profiles, artists, and other entity pages.

These updates aim to eliminate inconsistencies and ensure that all content types follow a unified relational model, allowing ideas and references to connect more naturally across the site.


🎵 Content Expansion & New Sections

With the structure stabilized, new content initiatives are beginning to take shape:

  • Listening Room: A dedicated space to highlight music that is personally meaningful, distinct from songs used purely for reference or analysis. This introduces a more intentional layer of curation, separating appreciation from critique.
  • Rap Content Separation: Rap lyrics are being reconsidered as a more specialized category. They will be given a distinct space to improve visibility and thematic clarity while remaining integrated into the broader system.
  • Video Game Integration: A new CPT is planned for video games, allowing related content to move beyond generic references and become part of the structured network.

In addition, there is a growing collection of film excerpts being prepared for conversion into visual formats (such as GIFs), further expanding the types of media represented on the site.


🧠 Content Strategy & Prioritization

With a large backlog of material already available, the challenge is no longer content creation but prioritization. Current considerations include:

  • Publishing long-standing draft chapters (including a major rap-focused chapter).
  • Extracting smaller, standalone elements from larger chapters to increase content accessibility and reuse.
  • Expanding excerpts from books and notes that have already been processed offline.
  • Organizing and refining external materials (notes, PDFs, media) for future integration.

This phase represents a shift from building structure to actively shaping how content is surfaced, consumed, and expanded.


🌐 Evolving Direction

The site continues to move toward becoming a fully interconnected system of ideas — where content is not confined to single pages, but exists as part of a larger conceptual network.

At this stage, the emphasis is on:

  • Strengthening relationships between content types.
  • Improving clarity between different modes of engagement (e.g., analysis vs appreciation).
  • Developing pathways for both deep exploration (chapters) and quick entry points (elements and excerpts).

The goal is to balance depth with accessibility, allowing the site to function both as a structured archive and an evolving map of thought.


⚙️ Timeline

Completing CPT conversion represents a significant turning point, but refinement and expansion remain ongoing. The next phase will involve steady iteration — improving structure, publishing content, and expanding media types — while gradually unlocking the full potential of the system.

With the foundation now established, future development will be more focused, intentional, and scalable.


📌 Site Status Update

🧭 Current Phase: Structural Consolidation & CPT Conversion

The site is currently in a major restructuring phase focused on converting every narrative thread and narrative fragment into a more modular, dynamic framework. Each re-usable element — including lyrics, excerpts, quotes, and images — is being extracted, rebuilt, and saved as its own custom post type.

These new elements are being organized under a unified theme and topic taxonomy, allowing each piece of content to connect contextually across the site. This means that a lyric, image, or excerpt won’t just exist within one fragment — it will be able to dynamically surface wherever its themes or topics overlap.

🧩 Design & Structural Overhaul

Alongside this rebuild, older design choices are being cleaned up and standardized. Newer sections already reflect a more polished structure and consistent display logic for content blocks, images, and metadata.
The process involves:

  • Refining layouts and cover block handling across CPTs.
  • Testing migrations to a new, more efficient theme framework.
  • Optimizing code and template behavior for long-term scalability.

Since this work touches nearly every corner of the site, progress is incremental and methodical — combining technical changes with design polish and content cleanup.

📚 Manual Curation & Content Preparation

Every piece of content on the site has been manually added and curated — from lyrics and excerpts to metadata and references. Even the semi-automated elements, like Wikipedia summaries, require manual setup of slugs and validation.

Beyond the visible work, there’s a large backlog of material waiting for integration: books, PDFs, notes, image folders, and more than ten draft narrative threads currently in private or partial form. In reality, there’s significantly more content waiting to be added than what’s currently live.

🌐 Long-Term Vision

This stage lays the foundation for a dynamic, interconnected network of ideas — where top-level themes and topics act as living portals that group, relate, and evolve with new additions.
Once the core structure is in place, the focus will shift toward:

  • Regularly publishing new narrative fragments and threads.
  • Using built-in tools (and future visual tools) to identify gaps and priorities.
  • Expanding content based on conceptual relevance rather than static categories.

⚙️ Timeline

This is a long-term, hands-on process — likely many months of refinement before the baseline structure is fully consolidated. But once that’s achieved, adding new content and expanding narrative connections will be much faster and more fluid.


📌 Update – November 15, 2025

📝 Footnotes System Re-Org — ACF Integration Issues and Template Failures

The recent attempt to reorganize and modernize the footnotes and profile-panel system revealed two structural issues caused by assumptions in the templates and ACF field mappings.

✅ What Was Changed

  • Adjusted ACF field groups for the footnotes/profile system.
  • Added the Show CPT fields to ACF as part of a larger taxonomy/CPT alignment project.
  • Moved several ACF tabs and field groups for better UI organization.

⚠️ Issues Encountered

  • The updated templates referenced ACF fields that did not exist, were renamed, or differed between CPTs.
  • Chapters without related CPTs caused profile and footnote sections to throw fatal rendering errors inside the block editor.
  • ACF field absence was not handled gracefully, resulting in editor crashes instead of silent failure.
  • Browser caching delayed the discovery of these errors until a cache flush.

🔧 Current Resolution

All modified footnote/profile template files have been reverted to their original, stable versions until a safer, validated implementation can be developed.


📌 Update – November 10, 2025

📺 Show CPT Creation — Structured Archive for Television and Serialized Works

The new Show custom post type (CPT) has been added to the site’s system to accommodate television series and other serialized visual works distinct from standalone films.

✅ Structural Role and Integration

  • CPT Name: show (slug: /shows/)
  • Taxonomy & Display: Fully integrated into the site’s taxonomy and footnote system (shows_referenced).
  • Templates: Includes new content-show.phpshow-nav.phppage-shows-referenced.php, and show-grid.php for consistent presentation.
  • Emoji Identifier: 📺 — representing both the legacy and persistence of the television form.
  • Archival Logic: Distinct from Movies, but parallel in layout and functionality. The structure allows for comparative media study — film vs. television, singular narrative vs. episodic myth.

📌 Update – October 27, 2025

⚛️ Element CPT Creation — Public Workbench for Raw Concept Development

The Element custom post type (CPT) was introduced as a structural and philosophical response to an ongoing creative bottleneck: the accumulation of private drafts and isolated ideas that never reached public visibility. This update reframes the concept of “drafts” within the site’s creative ecosystem — turning them from private, inert placeholders into living, public micro-units of thought that can evolve, combine, and eventually mature into larger narrative forms.


✅ Purpose and Conceptual Foundation

The Element CPT serves as a public workbench for experimentation and conceptual refinement. Unlike traditional drafts, Elements are intentionally unfinished or atomized — self-contained sparks, notes, excerpts, or pairings of ideas that hold potential value even in isolation. Their existence allows the creative process to remain transparent and dynamic, encouraging momentum and discovery rather than hesitation or perfectionism.

The driving insight behind this addition is that coherence should emerge from density, not design. By publishing Elements publicly, the site gains a pool of visible raw material that can later inform, connect, or evolve into Fragments (now Episodes) or full narrative Threads (Chapters).


✅ Structural Role and Workflow

  1. Starting Point for All Content:
    New ideas begin as Elements — whether a lyric, quote, thematic pairing, or symbolic observation.
  2. Evolutionary Progression:
    • Element → Episode → Thread represents a path of increasing integration and narrative coherence.
    • Not all Elements will progress; some remain standalone if they retain independent meaning.
  3. Replacement for Private Drafts:
    The traditional draft system has been deprecated. Instead, everything begins as public-facing content. This removes friction, builds accountability, and enables “creative debugging” in real time.
  4. Selective Graduation & Deletion:
    When an Element graduates into a higher form (e.g., becomes part of a narrative Thread), it can be retained for reference or deleted entirely depending on its enduring value.
  5. No Need for Glue Prematurely:
    The site’s “glue” — the connective logic between CPTs — will arise organically once enough Elements exist. This avoids over-structuring and preserves conceptual freedom during creation.

✅ Philosophical Justification

The Element CPT embodies a living epistemology:

  • Variation → publish widely and freely.
  • Selection → identify resonant or recurring motifs.
  • Integration → elevate them into Episodes or Threads when coherence emerges.

This mirrors the site’s broader metaphysical theme of emergent meaning: isolated atoms of thought coalescing into larger symbolic structures. It also aligns with the narrative logic that even fragments contain narrative potential — every idea is a proto-narrative awaiting context.


✅ Future Integration and Cleanup

As the ecosystem stabilizes, Elements will occupy a distinct but minimal position within site navigation (grouped alphabetically with other CPTs). Over time, a backend task will re-map CPT archive slugs directly to their display URLs, eliminating the current redirect layer for cleaner SEO and breadcrumb performance.

Long term, the Elements page will function as a creative observatory — a place where unrefined material and pure insight coexist, inviting synthesis rather than demanding completion.


In short:
The Element CPT transforms the creative workflow from draft-and-hide to publish-and-evolve, enabling a fluid, evolutionary system where meaning grows organically from accumulation, visibility, and connection.


📌 Update – October 11, 2025

🧩 Theme Migration Sandbox Setup (LocalWP, GeneratePress, and Kadence Tests)

This session extended the theme migration experiment into deeper troubleshooting and architectural analysis, moving beyond basic setup to explore real-world issues that arise during restoration, CPT registration, and parent–child theme alignment. The primary objective remains to establish a fully functional local clone of the live site capable of supporting modern parent themes while retaining all structural logic, ACF relationships, and narrative hierarchy.

✅ Actions Completed

  • Installed and configured LocalWP as a stable development sandbox, and tested UpdraftPlus full-site restores (database + files).
  • Experimented with both GeneratePress and Kadence as possible long-term parent themes for migration.
  • Discovered that GeneratePress’s minimalism offers clean structure but requires manual re-creation of many layout and color settings; Kadence provides visual flexibility but introduced theme JSON fragility (e.g., accidental deletion of global color variables).
  • Investigated CPT rendering issues (“page not found” after registration) and resolved them via permalink flushing, confirming CPTs were registered correctly.
  • Explored ACF Pro activation behavior on local environments and confirmed that while license reactivation is allowed for local testing, production keys should remain restricted to live and staging domains.
  • Identified the container width control as a critical layout setting (700–2000px range) and verified that default responsive behavior is preserved across screen sizes.
  • Recognized that XML import alone cannot restore relationships, menus, or ACF data — confirming that future migrations require a hybrid restoration strategy (importing only relevant database tables such as posts, postmeta, and taxonomy relationships).
  • Documented that a full DB restore re-establishes all logic but also risks carrying theme cruft and script errors, underscoring the need for a controlled re-architecture phase.

🎯 Next Steps

  • Outline a step-by-step hybrid migration blueprint, detailing which database tables to import and which to omit to preserve CPT data without reintroducing theme dependencies.
  • Test child theme creation methods under both GeneratePress and Kadence to ensure long-term flexibility if a switch is made.
  • Maintain Author as the current active framework until a functional prototype theme can replicate its layout and ACF-driven relationships in the new environment.
  • Rebuild lost global styles and colors within Kadence manually, and document their relationships to CPT templates and navigation components.
  • Continue using LocalWP for controlled testing and only move to live site adaptation after all structural, visual, and performance issues are stabilized.

This phase evolved from simple cloning into a deep diagnostic of WordPress migration realities—clarifying what can and can’t be cleanly transferred between frameworks. The process now serves as both a sandbox and a roadmap toward a future site architecture prioritizing stability, responsiveness, and maintainability without compromising creative continuity.


📌 Update – October 06, 2025

🛠️ Unified Passive Display Templates for Lyrics, Excerpts, and Quotes

This session focused on standardizing how passive display sections (lyrics, excerpts, quotes) render across different CPTs, ensuring consistent layout, image logic, and metadata display. Each block now follows a clean, reusable structure with smart fallbacks and clear “Source” labeling.

✅ Changes Completed

  1. Unified Lyric Display
    • Created a lyric-list-section template that gracefully handles both WP_Query and array input.
    • Added fallback logic for cover images (song cover → thumbnail → post thumbnail).
    • Implemented conditional “Source” display that links to the related song.
    • Trimmed lyrics to 80 words for balance while keeping styling consistent with excerpt/quote layouts.
  2. Unified Excerpt Display (Books Only)
    • Built a dedicated excerpt-list-section template limited to Book excerpts.
    • Used excerpt_source ACF relation to pull book info and display “Author” confidently since all excerpts are tied to Book CPTs.
    • Standardized image hierarchy: cover → featured → fallback.
    • Matched layout and text handling to lyric style for visual parity.
  3. Unified Quote Display (Books Only)
    • Added quote-list-section template to mirror excerpt behavior but using quote_source.
    • Consistent image logic and link structure with excerpts.
    • Trimmed displayed quote text to 40 words for balance within grids.
    • “from [Book Title]” format used for attributions for a more literary tone.
  4. Content Handling Discussion – Lyric Text Formatting
    • Reviewed why lyric lines often lack punctuation (since they’re displayed as raw multiline text).
    • Considered inserting commas for soft line breaks and dashes for natural pauses to make text cleaner in grids.
    • Decided to potentially preprocess or lightly edit lyric text fields to preserve readability while keeping cover blocks unaffected.

Overall, all three passive display templates are now standardized, modular, and stylistically aligned — setting a clean foundation for future content refinement and formatting automation.

📌 Update – October 05, 2025

🧭 Portal Pages Integration, Breadcrumb Refactor, and Archive Redirect Consistency

This round focused on structural refinements and unifying behavior across the site’s growing network of CPTs, archive redirects, and breadcrumb logic — with “Portal Pages” officially introduced as a new core content type.

✅ Changes Completed

  1. Portal CPT Registered & Integrated
    • Added a dedicated portal custom post type modeled after “Concepts.”
    • Supports title, editor, thumbnail, and excerpt for consistent grid display.
    • Implemented a concise excerpt: “Curated overviews consolidating key topics with context and connections.”
    • Set up proper archive and single templates (content-portal.phpsingle-portal.php, and page-portal.php) for full integration.
  2. Search Page Hierarchy Adjusted
    • Reordered search result priorities: Portal Pages → Topics → Themes → All Other CPTs.
    • Ensured consistent styling via theme-grid partial for taxonomy results.
  3. Breadcrumbs Unified via Central Mapper
    • Refactored inc/breadcrumbs.php to pull titles and links directly from the global CPT metadata array (get_cpt_metadata()), ensuring consistency across CPT archives, breadcrumbs, and redirects.
    • Fixed pluralization mismatches (e.g., “Books” → “Books Cited,” “Songs” → “Songs Featured”).
    • Cleaned up redundant self-links for themes/topics taxonomy breadcrumbs.
  4. Archive Redirects Modernized
    • Updated inc/redirects.php to use the same centralized CPT mapper for all archive → page redirects.
    • Removed outdated anchor-based pagination redirects (/#narrative-threads) since dedicated pages now exist.
    • Verified all redirects resolve correctly post–permalink flush.
  5. Dedicated Narrative Thread & Fragment Pages Created
    • Broke out both sections from the homepage anchor system into their own standalone templates (page-narrative-threads.phppage-narrative-fragments.php), allowing cleaner routing and independent indexing.
    • Replicated homepage grid structure exactly for visual consistency.
  6. Homepage Structure Refined for Clarity
    • Cleaned and reordered homepage sections for intuitive flow:
      Site Resources → Narrative Threads → Portal Pages → Narrative Fragments.
    • Removed confusing nested <hr> placements and redundant comment markers.
    • Standardized section breaks and anchors for a clean, readable template hierarchy.

🧩 Result:
All narrative and portal-based content types now share a unified routing and breadcrumb system, fully aligned with the site’s internal mapper. The homepage and new pages display in a consistent grid-based design, while archive URLs redirect seamlessly to their curated landing pages.

📌 Update – October 04, 2025

🛠️ Search Page Refinement and Taxonomy Integration

This session focused on improving search logic to make taxonomy-tagged content discoverable without disrupting normal search results.

✅ Changes Completed

  1. Search Results Expanded to Include Taxonomy Matches
    • Adjusted search.php so that when a user searches for a term (like “philosophy”), the search now includes posts tagged with that term across the theme and topic taxonomies.
    • Implemented case-insensitive matching for both term names and slugs.
    • Ensured taxonomy-matched posts merge seamlessly with regular Relevanssi results instead of replacing them.
    • Verified that taxonomy archive pages remain isolated and unaffected.

Result: searches now surface everything related to a term—both direct text matches and taxonomy-tagged items—without losing accuracy or breaking existing result ordering.

📌 Update – October 02, 2025

🛠️ CSS Cache Busting, Browser Compatibility, and Phantom Nav Debugging

This week was all about tracking down some elusive frontend glitches that looked like theme or CSS bugs but turned out to be much deeper. Between Cloudflare cache issues and a misconfigured Nginx tweak, I learned that not every “visual” bug actually lives in the theme.


✅ Changes Completed

1. CSS Loading Fix Across Browsers

  • Safari and Waterfox were truncating my CSS file mid-stream, while Chrome and Librewolf looked fine.
  • After confirming it wasn’t a CSS syntax issue, I traced it to Cloudflare serving a broken cached copy.
  • Clearing Cloudflare fixed the immediate problem, but to prevent repeat issues I added automatic cache busting in functions.php using filemtime() so every edit to style.css generates a unique version query (/style.css?ver=...).
  • Result: browsers and Cloudflare always pull the latest stylesheet without manual purges.

2. Phantom Nav Flash Debugging

  • A scary-looking FOUC-style glitch popped up where the hidden nav background bar would flash briefly before styling kicked in.
  • I wasted time comparing chapter vs fragment templates and even considered scrapping my theme before realizing it wasn’t a template bug at all.
  • The real culprit: Nginx config overrides (gzip off; proxy_buffering off; chunked_transfer_encoding on;) I had added while testing CSS delivery.
  • These forced early streaming of HTML before CSS was ready, making the nav bar “visible” for a second.
  • Restoring my Nginx backup fixed the issue instantly.

🔑 Lessons Learned

  • Always test styles in multiple browsers—Safari caught what Chrome missed.
  • Cloudflare cache can break things in invisible ways. Versioned assets solve this permanently.
  • Server-level config changes can create phantom theme bugs. Always keep backups and roll back once tests are done.

✅ End Result: Styles now load consistently across all browsers, the nav bar glitch is gone, and asset versioning means I won’t waste time chasing phantom cache issues again.


📌 Update – September 28, 2025

🛠️ Theme Taxonomies, Search Integration, and Template Consistency

This week was one of the deepest dives yet — most of my time went into untangling how themes behave between taxonomy pages and search results. The goal was to unify templates while keeping behavior logical:

  • Theme pages should only show CPTs explicitly tagged with that theme.
  • Search pages should show both CPTs and relevant themes, but without themes “acting like” searches themselves.

It turned into a bigger mess than expected, since the shared templates were written to always expect a $search_term, which caused taxonomy pages to behave like search pages.

✅ Changes Completed

  • Recovered the last known working version of taxonomy-theme.php that used shared templates. This was the variant where taxonomy pages worked correctly but leaked some search-like behavior (e.g. “man” pulling in unrelated artists). I’ve saved this for future re-work.
  • Identified that only the Artist CPT was misbehaving in taxonomy queries. This is likely due to its custom taxonomy structure (3-tier categorization), which makes it behave differently from other CPTs.
  • Confirmed that taxonomy pages themselves are fine when using self-contained queries — but this bypasses the shared template system. For now, I’ll stick with the independent version since it works, and return to shared templates later once templates can properly distinguish between taxonomy and search contexts.
  • Investigated why themes still weren’t appearing in search results. Discovered that WP search ignores taxonomy terms, and Relevanssi needs explicit indexing plus a custom loop to surface associated terms. Planned a fix where search results will pull in posts via Relevanssi, then collect their associated themes and display them in the theme-list grid.
  • Cleaned up old artist-specific query logic that was introducing partial matches and inconsistent behavior in both search and taxonomy contexts.

🚧 Next Steps

  • Modify shared templates so they can branch:
    • If called from taxonomy, use only tax_query.
    • If called from search, include $search_term.
  • Adjust the Artist CPT template so its special taxonomy system doesn’t cause false positives.
  • Implement the planned Relevanssi + theme collector for search, so themes reliably appear when they’re relevant to search terms.

📌 Earlier Work (Carried Over for Coherency)

Featured In System Refactor

  • Built a reusable show_featured_in_threads() helper that pulls Chapters + Fragments together in one unified grid.
  • Migrated all CPTs except Artists, Songs, and People (Songs already had a custom version; Artists/People would be too cluttered).

Sidebar Updates & CPT Index Fixes

  • Fixed the “No entries found” bug by restoring the original loop.
  • Anchors for narrative threads/fragments now point to homepage anchors.
  • CPT totals updated (1320 → 1330) since new taxonomies like theme are now counted.
  • Sidebar snippet now shows last update datethread/fragment counts, and total entries, with emojis for consistency.

Artist Search Bug

  • Debugged why Artists (like Nirvana) weren’t appearing in search.
  • Found an old special case merging “artist + rapper” queries — once removed, Artist CPTs flowed through the normal search path and now display correctly.

Reference CPT Content Handling

  • Standardized the_content() rendering across CPTs — it now always displays.
  • ACF “description” is still shown when present, but no longer controls whether the_content() appears.

Themes Structure

  • Established workflow where themes act as poetic hubs instead of dry dictionary entries.
  • Added ACF image fields + theme-grid.php template for visual theme display (top 20 themes get the grid, rest show alphabetically).
  • Confirmed themes don’t appear in search by default since they’re a taxonomy — planned direct query integration for search.

📌 Update – September 24, 2025

✅ Template modularization & search integration

  • Goal: make every CPT page and its search results reuse the same shared template parts.
  • What was done:
    • Main CPT listing pages (page templates, archives) were updated to call template-parts/* instead of duplicating loop/markup.
    • Search page (search.php) was refactored to use a central CPT mapping and to call per-CPT search wrappers which simply pass the search WP_Query to the shared template-parts.
    • For each CPT there are now two pieces:
      • template-parts/<cpt>-grid.php or template-parts/<cpt>-list.php — the single reusable layout (grid or compact list).
      • template-parts/search/<cpt>.php — minimal wrapper used by search.php that forwards queryinfo, and search_term into the shared template part.
    • This makes search results and original CPT pages identical in layout and behavior (only the query source differs).

✅ Centralized CPT metadata (emoji / title / links)

  • Central mapping of CPT display metadata (title, emoji, link) was used so search.phpfootnotes, and all template-parts read the same values.
  • The mapping was reordered specifically for the search results so result sections appear in the desired grouping/order.
  • Result: headings, emojis, and links are consistent across all templates and footnotes.

✅ Files created / updated (high level)

  • Shared template parts (single source for layout) — examples produced/standardized:
    • template-parts/artist-grid.php (artists listing — portraits)
    • template-parts/song-grid.php (search-style song grid partial)
    • template-parts/image-grid.php (image gallery partial — square/rounded thumbnails)
    • template-parts/book-grid.php
    • template-parts/movie-grid.php
    • template-parts/organization-grid.php
    • template-parts/reference-list.php
    • template-parts/quote-list.php
    • template-parts/excerpt-list.php
    • template-parts/concept-list.php
    • template-parts/profile-list.php
    • template-parts/lyric-grid.php (lyric / song-excerpt list)
    • template-parts/chapter-grid.php (used for chapters + fragments)
  • Search wrappers (minimal files that forward $query):
    • template-parts/search/artist.php.../song.php.../image.php.../book.php, etc. (one per CPT)
  • Page templates updated to call shared parts:
    • e.g. page-books.php → now calls get_template_part('template-parts/book','grid', [...])
    • e.g. page-image-gallery.php → now calls get_template_part('template-parts/image','grid', [...])
    • (All CPT directory pages were converted to the same pattern.)
  • Footnotes / inc/footnotes:
    • Existing footnotes code was adapted where needed to use the same image fallback logic and the same UI pattern for small referenced lists (fn_imagesfn_references updated to prefer ACF image then featured image, output rounded thumbnails, etc.).

✅ Uniform UX details implemented

  • Heading alignment fix: headings moved outside grid wrappers (no more heading becoming the first grid item and causing an indent).
  • Heading format: all CPT sections consistently show emoji + title + optional "containing \"search term\"" (search wrappers pass search_term to the part).
  • Image handling (consistent across all templates):
    • Prefer cover_image (ACF) when present, else fall back to post_thumbnail.
    • Deliver a consistent thumbnail size (use WP image sizes, e.g. medium or thumbnail) and render with object-fit: cover and a fixed width/height to square and round.
    • This fixes the “disparate image sizes” problem while keeping the grid/list layout you wanted.
  • List style: compact lists (quotes, excerpts, lyrics, concepts, profiles, references) follow same structural pattern:
    • 48×48 circular thumbnail on the left, title + trimmed text on the right, “Source: …” link under the text when relevant.
  • Lyric (song excerpt) behavior: title still links to the lyric post; a Source: line was added beneath each lyric item that links to the song CPT (via the song ACF object field).
  • Search wrappers are minimal: they only prepare queryinfosearch_term and call get_template_part() so future changes live in one file.

✅ Search-specific behavior

  • search.php now:
    • Uses the centralized CPT mapping ($cpt_sections) as the single source for section titles & emojis.
    • Builds a WP_Query per CPT (and runs Relevanssi if available) and then calls the per-CPT search wrapper to render results using the shared template part.

📌 Update – September 21, 2025

✅ Footnotes System Refactor (inc/footnotes)

  • Modularization:
    Broke down the original monolithic inc/footnotes.php into individual modules (quotes.phplyrics.phpexcerpts.phpconcepts.phporganizations.phpreferences.phpimages.phpthemes.phpvideos.php, etc.).
    Each CPT/section now has its own function (fn_quotesfn_excerpts, etc.) and is required dynamically via glob().
  • Consistency Improvements:
    • Unified layout structure (referenced-group wrapper, consistent <ul><li> styling, thumbnails left + text right).
    • Each group pulls its label (title, emoji, link) from a central $group_titles array.
    • Standardized use of wp_trim_words() for excerpts and lyrics.
    • Clean handling of artist/song logic (primary vs secondary, featured vs referenced).
  • Thumbnail Handling:
    • Quotes and excerpts now correctly pull images from their source CPTs (books, movies, references).
    • Added fallback to source CPT’s featured image if no custom cover_image is present (fix for references).
    • Profiles, lyrics, concepts, etc. each have tailored thumbnail rules (portraits, cover images, featured images).
  • Video Handling:
    • Moved video logic into its own section, simplified output.
    • Primary + secondary featured songs display screenshots if available, with toggle for hiding secondary.
    • Next step: minor cleanup of overlapping glitches.
  • Efficiency Tradeoff → Modularity:
    Accepted some redundancy in favor of modularity. Functions are now easier to swap, debug, or extend without breaking unrelated CPTs.
  • Status:
    Almost all sections are stable and visually consistent. Only excerpts.php needed a last-minute tweak for image fallbacks. Alignment and source display are now fixed.

✅ Excerpt Automation Across CPTs

  • Built multiple WP-CLI scripts to populate Yoast excerpts from custom fields.
  • Scripts trim content (~157 chars) and add ... for proper snippet length.
  • Versions created for:
    • Quotes → quote_plain_text
    • Excerpts → excerpt_plain_text
    • Lyrics → lyric_plain_text
    • Concepts → definition
  • Each CPT now has:
    • Forceful version (always overwrite excerpt)
    • Conditional version (only set if excerpt is empty)

✅ Featured Image Alignment with Yoast

  • Planned a script to copy ACF portrait_image (or other CPT-specific image fields) into the _thumbnail_id.
  • Ensures Yoast picks up the correct image (og:image + twitter:image) instead of unrelated generic placeholders.

✅ SEO Behavior Observations

  • Confirmed that generic placeholder images are often ignored by Google in search previews.
  • Verified Yoast is correctly outputting og:image once _thumbnail_id is updated.
  • Determined Google reindexing delay is normal — images may take weeks to start showing in results.

👉 Net Result:

  • Excerpts standardized across all CPTs for Yoast.
  • Image metadata alignment in progress via ACF → featured image sync.
  • SEO previews improved by removing generics and ensuring snippets/images are populated consistently.

PHP Upgrade & VPS Cleanup

  • PHP upgrade & cleanup
    • Verified server had PHP 8.2, 8.3, and 8.4 installed.
    • Removed unnecessary Apache-related PHP modules.
    • Set PHP 8.3-FPM as the active version for Nginx.
    • Ensured old 8.2 services were disabled to avoid conflicts.
    • Rebooted VPS and confirmed Nginx + PHP-FPM were working correctly.
  • Nginx configuration
    • Cleaned up duplicate location blocks in the Nginx config.
    • Updated PHP handler to consistently use PHP 8.3-FPM sockets.
    • Verified server blocks for devwww, and redirects were consistent and functional.
    • Resolved a temporary 502 Bad Gateway issue caused by PHP-FPM service not running.
  • WordPress monitoring
    • Noted the temporary action_scheduler_run_queue late warning after reboot.
    • Confirmed this was expected after a restart and not a persistent problem.
  • Disk usage prep for VPS migration
    • Began cleaning up space in preparation for copying VPS disk.
    • Identified large files and databases using du and inspection (wp_mailpoet_log.ibd, etc.).
    • Planned to use pigz for parallel compression during backup/migration.

Profile CPT Updates (Quotes & Excerpts)

  • Added Quotes and Excerpts sections to the Profile CPT template.
  • Fixed issue where they didn’t appear because quote_source/excerpt_source only pointed to Books, Movies, or References. Adjusted logic so Profiles now pull quotes and excerpts through their authored books.
  • Implemented extra spacing above and below Quotes and Excerpts for better separation from each other and from the Books grid.
  • Centered section titles and lists to match the overall page layout and improve consistency.

Narrative Threads → Fragments Migration & Template Updates

  • CPT Migration:
    • Created new fragment CPT as a lighter-weight narrative building block.
    • Migrated select chapters into fragments with preserved ACF data.
    • Fixed issue where migrated posts turned into attachment type → resolved by restoring post_type and correcting post_status (inherit → publish).
    • Identified that Themes taxonomy wasn’t attached to fragments initially → once re-registered, existing term relationships reappeared (no data loss).
  • Artist Templates:
    • Artists Featured page reviewed → confirmed original queries for feature_level taxonomy didn’t need changes just for fragments.
    • Ensured secondary artists and non-rappers remain visible, avoiding accidental exclusion.
  • Song Template (content-song.php):
    • Reordered layout → Song Excerpts now appear above YouTube embeds.
    • Added Fragments grids beneath Narrative Threads, keeping Referenced In last for logical flow.
    • Updated queries to pull both chapter and fragment CPTs when associating with songs.
  • Books Integration:
    • Adjusted logic so books can appear in “featured” slots of fragments/threads, even though they’re not primaries.
  • Chapters by Song (Index Pages):
    • Expanded tables to now include 4 sections:
      • Chapters in Order
      • Fragments in Order
      • Chapters by Artist
      • Fragments by Artist
    • Kept them as separate tables (not merged) for clarity.
  • General Migration Safety:
    • Determined that ACF JSON field groups should remain identical across CPTs for interoperability.
    • Recommended reimporting with unified headers rather than maintaining divergent “fragments-only” groups.

📌 Update – September 15, 2025

🛠️ CPT Structures, Sources, and Footnote Experiments

This week’s focus was on refining CPT relationships, clarifying how sources should be displayed, and continuing the cleanup of ACF vs taxonomy usage. A lot of forward progress, with some experiments set aside for future rework.


✅ Changes Completed

Organization CPT

  • Removed old featured boolean field for cleaner data.
  • Updated Organizations Referenced template to list all organizations directly (works fine since there are only a handful).
  • Decided that organization type should eventually become a taxonomy instead of an ACF select field.
  • Talked through relationship modeling: people often act as the “bridge” between orgs, so long-term plan may be more like a graph/webbrain visualization.

Song CPT

  • Reviewed current field setup: artist, YouTube URL, cover image, bio, video screenshot, “is glue,” “is liked,” and emotional value.
  • Reconfirmed that themes belong as a taxonomy, not an ACF field — since they’re reusable across CPTs.
  • Clarified taxonomy vs ACF once again:
    • Taxonomy = global classification (themes, tags, genres).
    • ACF = post-specific metadata (URLs, booleans, screenshots).

Lyric CPT

  • Explored whether to move lyrics into the_content — decided not to, since lyrics need their own CPT with structured fields.
  • lyric_cover_block_full remains as the place for formatted block layouts.
  • Lyrics now display their source song CPT, and cover images properly pull from cover_image after fixing the wrong field name.

Quote & Excerpt CPTs

  • Both now display their source CPTs (book, movie, or reference).
  • Consistent design: bullet-style list with rounded thumbnails (mirroring footnotes).
  • Excerpts trim overly long text automatically, while still linking to their full source.
  • Templates standardized so quotes/excerpts always show cover images when available, and otherwise fall back to featured images.

Visual Consistency

  • Centered navigation bars and source displays.
  • Rounded thumbnails standardized across all CPTs.
  • Layouts for quotes, lyrics, and excerpts now feel cohesive.

⚠️ Incomplete / Deferred

Footnotes System Rework

  • Attempted to add a smarter fallback chain for bios/summaries (manual bio → Wikipedia slug → nothing).
  • Implementation ran into brace mismatch errors and broke layout consistency.
  • Rolled back to the last working version for stability.
  • Plan to revisit in smaller modular chunks (one CPT type at a time).

Reference CPT Cleanup

  • Current state: overloaded with ~13 fields (type, source name, URL, slug, cover, archive, credit, notes, excerpts, etc.).
  • Identified that this is too complex. Plan is to split into:
    • Metadata: type, name, URL(s), related CPT.
    • Content: notes, excerpts, block HTML.
  • Extra fields like “archive link” and “credit name” will eventually be merged or removed.

📌 Next Steps

  • Revisit footnotes system modularly to avoid massive nested logic blocks.
  • Decide on final handling for grouped excerpts (either special Excerpt CPT entries or reference-only stubs).
  • Begin actual Reference CPT simplification to reduce redundant fields.
  • Expand centering/visual cleanup to all remaining CPT templates.
  • Long-term: consider adding plain-text fallback fields (lyrics, excerpts, quotes) for search tools like Relevanssi.

📌 Update – September 8, 2025

🛠️ CPT Expansion & Excerpt System

This week I made major progress on structuring excerpts, quotes, and reusable content blocks:

  • Built a new Excerpt CPT (content-excerpt.php + excerpt-nav.php) modeled on the existing Quote CPT, with navigation and source linking.
  • Fixed issues where excerpts were incorrectly showing themselves as their own source. The solution is to ensure the ACF relationship field returns an object, not just an ID.
  • Standardized excerpt templates to render the cover block (the_content()) rather than custom ACF fields, simplifying reuse and ensuring all visual elements display consistently.
  • Decided that excerpts must be individual CPTs (rather than grouped per book) so they can be independently tagged, searched, and recombined across books, themes, and hub pages.
  • Added default featured image logic for excerpts (mirroring quotes) to ensure consistent navigation thumbnails.

🧩 Patterns vs. Content

I worked through the long-term strategy for reusable blocks:

  • Quotes, lyrics, excerpts, and lexicon entries will all be converted into cover block patterns.
  • This ensures that if design, links, or metadata change, updates only need to happen once — rather than copying/pasting blocks across chapters.
  • Patterns also let me sync visual consistency across different CPT templates and hub pages.
  • For now, I’ll reserve patterns for blocks that appear in 3+ locations, while relying on the_content() for standard single-use CPTs.

📚 Hub Pages & Taxonomy Strategy

I clarified how “hub” pages will function:

  • Hubs are effectively tag archive templates, consolidating all CPTs (chapters, excerpts, quotes, movies, etc.) under a shared theme.
  • Instead of always linking to concept pages, I’ll begin experimenting with linking directly to hub pages, since they provide broader context.
  • However, CPT pages can also act as mini-hubs by displaying related taxonomy terms and their associated content. This hybrid approach preserves flexibility.

⚡ Archive Redirects & Reserved Slugs

While setting up archive redirects, I ran into conflicts with reserved slugs (excerptauthor, etc.):

  • Fixed by renaming the excerpt archive to Excerpt Library (/excerpt-library/).
  • Confirmed that some archive redirects (e.g. /song/ redirecting incorrectly) stemmed from WordPress’s slug resolution quirks, not from my code.
  • Organization and Image archives continue to work as expected.

🎨 Lexicon Modernization

Finally, I decided that lexicon entries (currently raw text) should also be converted to cover blocks/patterns. This will allow me to:

  • Add formatting, images, and inline links to related CPTs.
  • Keep styling consistent across all reference-oriented content.
  • Eventually upgrade them into full-fledged hub-like entries.

🔧 Server & Plugin Maintenance

PHP Upgrade Follow-Up

After upgrading PHP on the Debian 12 VPS, WordPress flagged missing modules (imagick and intl). Installing the correct packages (php8.2-imagickphp8.2-intl) and restarting the web server resolved the warnings.

Task & Problem Summary – Editor Slowdown

After a VPS reboot, I investigated severe slowdowns (5–8 seconds) in the WordPress editor when searching CPTs:

  • Verified nginx, PHP-FPM, and MariaDB configs — no server-side issues.
  • Narrowed the problem to plugins.
  • Disabling MailPoet immediately restored instant performance.
  • Conclusion: slowdown caused by MailPoet’s recent update, not the server. Plugin remains disabled (or rolled back) until fixed upstream.

✅ Overall, this week solidified excerpts as their own CPT, set a long-term path toward pattern-based reusability, and clarified the role of hub pages vs. CPTs. On the infrastructure side, PHP and plugin issues are under control, so I can focus on content migration and refinement.


📌 Update – August 25, 2025

🧹 Legacy ACF Cleanup & Safety Scripts
This week I focused on finally removing the last of the legacy ACF fields from my Chapter CPTs. Earlier deletion attempts were too aggressive and risked wiping unrelated data, so I reworked the process into a controlled, multi-step workflow:

✅ Built a dry-run checker to identify which chapters still hold old field data.
✅ Created an interactive per-chapter deletion script with manual confirmation for extra safety.
✅ Added a per-field bulk cleanup script so I can clear one field type across all chapters without collateral damage.

This layered approach gives me confidence I can phase out the old fields cleanly without risking Yoast data, featured images, or new CPT fields.

🎼 Primary Artist & Song Relationship Overhaul
With the legacy primary_artist and primary_song fields now gone, I restructured how songs and chapters connect:

✅ Updated Relevanssi indexing so it now pulls artists directly from each Song CPT’s song_artist field.
✅ Rebuilt the Music Video block so it looks to the chapter_songs repeater instead of the deleted fields.
✅ Audited content-chapter.php and confirmed it already correctly displays artist + song data from the repeater.
✅ Reviewed content-song.php and decided to defer taxonomy migration until all songs have feature-level terms set.
✅ Clarified the plan: narrative threads will remain repeater-driven, while non-narrative featured songs will eventually be handled via taxonomy.

🗂 Incoming CPT & Content Capture Strategy
I also tackled a broader content-organization issue: relying on bookmarks and external notes was slowing me down. Instead, I considered created an Incoming CPT to serve as a messy but public capture pool. This way, I can throw new finds into the archive immediately, without prematurely forcing them into structured CPTs.

✅ Decided dangling content is a feature, not a bug — it allows for later enrichment without blocking capture.
✅ Clarified the works vs. excerpts vs. quotes distinction (books → excerpts/lyrics → quotes).
✅ Introduced a Song Preference taxonomy (Liked) to highlight songs I personally enjoy, avoiding unreliable ACF flags.

🔧 CPT & Taxonomy Unification
A big part of the week was consolidating all CPT registrations into a single loader plugin with one file per CPT plus a shared taxonomies.php. Along the way:

✅ Fixed inconsistencies (e.g. singular vs plural CPT slugs — profile vs profiles) that were breaking permalinks.
✅ Ensured every CPT has archives enabled, since redirects depend on them.
✅ Restored custom admin labels so CPTs show “Add New Image” or “Add New Quote” instead of the generic “Add New Post.”
✅ Centralized archive redirect rules and breadcrumb remaps so all CPTs map cleanly to their dedicated index pages (e.g. /profile/ → /people-referenced/).

📝 Footnotes Modularization
Finally, I moved the entire footnotes/reference system into /inc/footnotes.php as a standalone module. This keeps the shortcode clean, centralized, and easier to maintain without bloating chapter templates.


📌 Update – August 15, 2025

🎼 Footnotes & Song Referencing Overhaul

After reviewing the song display logic, I rebuilt the Songs Referenced section in chapters to directly use the Song CPT’s ACF post object (song_artist) for linking songs to artists. This removed the old brittle title-parsing approach and guaranteed 100% accurate artist-song connections.

✅ Songs now grouped under Primary ArtistSecondary Artist, and Other Artists based entirely on the linked CPT data.
✅ Retained the Unknown Artist category deliberately as a pragmatic QA tool — this allows me to instantly locate any songs missing proper CPT connections, acting as a “future-proof bug finder.”
✅ Removed complex “Primary Song / Other Songs” formatting for all artists — reverted to the clean, non-clickable song list for now to avoid spacing and indentation issues. Artist names remain clickable only in the footnotes context.
✅ Output kept simple for visual clarity at this stage, with more aesthetic refinement postponed until functional stability is locked in.


🧭 Artist & Song Navigation Restructure

✅ Fixed artist navigation so Rappers and Non-Rappers use distinct navigation groups.
✅ Removed dependency on the “Non-Rapper” term — navigation now defaults automatically if no artist_type is set.
✅ Applied similar grouping to Song CPT navigation:
– Rap songs are grouped separately.
– Non-rap songs are grouped by feature level.
✅ Eliminated feature_level as an ACF field — this is now entirely handled via taxonomy terms.
✅ Bulk-removed non-rapper terms via WP-CLI to clean up legacy data.


📄 CPT Template Additions

Artist CPT Template

  • Added a Songs section above Narrative Threads, pulling all song posts where song_artist matches the current artist.
  • Displayed in a 5-per-row square thumbnail grid consistent with the “Songs Featured” page style.

Movie CPT Template

  • Added Narrative Threads section pulling all chapter posts that reference the current movie via movies_referenced ACF relationship.
  • Uses serialized array matching in meta_query and keeps the same grid layout as Artist Narrative Threads.

🧹 Meta & Embed Cleanup

✅ Deleted old is_featured_song meta key from all Song CPT posts.
✅ Updated YouTube embed logic in content-song.php:
– Auto-embed only if feature_level is primary or featured.
– Otherwise, display a nofollow link.
✅ Removed unused or empty ACF meta:
– quote_text (attachments)
– footnote_text and anchor_id (all posts)
– author_name (Book CPT, now handled via Author CPT)


🔍 Search Result Fixes

✅ Fixed duplicate Rappers CPT entries in search results.
✅ Unified display so Artists and Rappers share the same rounded-headshot layout.
✅ Added a default fallback image display for all other CPTs (songs, images, organizations, etc.) using:
– featured_image
– cover_image
– portrait_image
– image_file
✅ Preserved existing working layout and styling.


📌 Update – July 31, 2025

🖼️ Image CPT Launched for Symbolic & Thematic Media

After re-evaluating the image strategy, I moved forward with a dedicated Image CPT (images) instead of solely enriching Media Library items. This new architecture offers deeper integration with songs, chapters, themes, and symbolic motifs:

  • ✅ New CPT images registered via custom plugin. Supports title, editor, thumbnail, and full REST integration.
  • ✅ Archive Template (archive-images.php) includes a theme-based filter system and grid display for all images.
  • ✅ Single Template (single-images.php) shows featured image, description, and associated symbolic metadata.
  • ✅ Navigation Menu updated to include 🖼️ Images linking to /images/.

🎨 Image Metadata via ACF Field Group

Created a comprehensive ACF field group (Image Details) to standardize symbolic and narrative tagging:

  • Image Type (select): Meme, Album Cover, Symbolic Art, Historical Photo, etc.
  • Themes: Integrated with shared non-hierarchical theme taxonomy (checkbox display).
  • Associated Song / Lyric / Chapter (post object + relationship).
  • Symbol/Motif Notes (textarea) and Credit/Source (text).

This allows symbolic images to now function like narrative nodes—linking threads between media types (songs, lyrics, chapters, themes) across the site.

🔁 Next Steps (Planned for August)

  • Implement tag-based filtering for /images/ archive (e.g. by image_type or theme).
  • Enable symbolic image embedding inside chapters using shortcode or block.
  • Explore a fallback gallery view for images not yet linked to any CPTs (orphan detection).

📌 Update – July 19, 2025

🎵 Song CPT Enhancements & Embedded Media Fixes

This week marked a major step forward in integrating multimedia and artist metadata across the Songs Featured CPT:

  • Implemented full support for FeaturedSecondaryTertiary, and Quaternary Artists using custom ACF fields.
  • Updated the [referenced_works] shortcode to display each featured artist on its own line, preserving manual order.
  • Created a new ACF field youtube_url for songs, allowing direct YouTube embeds.
  • Solved a persistent embed rendering issue by switching all Song CPTs to use the native block editor(show_in_rest => true), enabling proper YouTube centering and layout control without extra wrappers or hacks.
  • Final video centering was handled within the block editor’s native structure, ensuring consistency across song and chapter templates.

⚙️ Server Stack, Caching, and PHP Optimization

A backend upgrade was completed this week to improve performance and long-term maintainability:

  • PHP updated to 8.2.28, including performance enhancements via Zend OPcache.
  • Installed all recommended PHP modules (intlimagick, etc.) for WordPress compatibility.
  • Evaluated Redis but decided not to implement object caching yet due to server constraints (1GB RAM / 1 CPU VPS). Instead:
    • Leaned into lightweight caching options (FastCGI or Cache Enabler).
    • Reconfirmed Cloudflare is active and acting as the CDN/frontline cache.
  • Verified response times under 300ms, hardened the PHP environment, and documented a future-proof configuration baseline.

🖼️ Image Gallery Strategy & Narrative Media Architecture

Initial planning was completed for a full-featured narrative image gallery system that treats images as a storytelling layer:

  • Outlined a multi-layer system: from “Master Gallery” to “Tagged Images” to “Used in CPTs.”
  • Confirmed that images will remain Media Library attachments, enhanced with ACF fields and taxonomiesinstead of being their own CPT.
  • Planned fields for images:
    • featured_image_in_gallery (ACF toggle)
    • gallery_caption
    • image_type (symbolic, aesthetic, etc.)
    • related_chapterrelated_concept, etc.
  • Image themes will use the existing non-hierarchical theme taxonomy for symbolic linking across media.
  • Determined the gallery’s front-end page (/image-gallery/) will query and display featured images with filtering by theme or related CPT.

🏢 New “Organization” CPT for Institutional Entities

To resolve longstanding ambiguity around non-personal references:

  • Created a new organization CPT to represent entities like institutions, NGOs, conferences, and foundations.
  • Chose “organization” (over “entity”) for its clarity and plural-form usability.
  • Built out full ACF integration:
    • Wikipedia slug with importable excerpt
    • Custom bio
    • Cover image (cover_image)
    • Relationships to people, concepts, chapters, and other organizations
  • Updated the [referenced_works] shortcode to support organizations with:
    • Square thumbnails (styled like books)
    • Alphabetized display under a new “🏢 Organizations Referenced” section

📐 Dynamic Quote Rendering with ACF + Cover Blocks

Refined quote display options to reduce repetitive block code entry:

  • Developed a fallback system for auto-generating cover blocks using plain text ACF fields (quote_text), rendered with do_blocks() if no custom block code is provided.
  • Planned a transition away from raw cover block code stored in ACF to a pattern-based system using WordPress Synced Patterns.
  • This ensures centralized design control: when a quote pattern is updated, all instances reflect the change.
  • Long-term strategy includes optionally storing the pattern slug in ACF (quote_pattern_slug) and rendering it dynamically using a core/pattern block fallback.

📌 Update – July 12, 2025

➕ Additions & Refinements to CPT Footnotes, Themes, and Songs

This week continued the structural improvements following last week’s migration of the legacy footnotes system. While the CPT-based footnote architecture is now in place, several new features and enhancements were added to increase semantic richness and cross-linking throughout the site.


🧠 Themes Taxonomy Introduced

A new non-hierarchical theme taxonomy was created to group symbolic, recurring motifs across all CPTs — especially lyrics, quotes, and concepts.

  • Each theme (e.g., “Open your eyes”“Learning to let go”) is treated like a symbolic hashtag.
  • Supports CPTs like Lyrics, Quotes, Concepts, Books, Movies, and more.
  • /themes index page was created using the [theme_index] shortcode.
  • Each individual theme has its own /theme/[slug] archive using a custom taxonomy-theme.php template.
  • New excerpt tagline:“Recurring symbolic structures that exist throughout lyrics, quotes, and other expressions.”

Themes are now integrated into the [referenced_works] shortcode output with a 🧵 icon and linkable list at the bottom of footnotes.


🎵 Song CPT Display Enhancements

  • Continued refinement of the Songs Featured CPT:
    • Album cover thumbnails now square (styled via .song-grid)
    • YouTube embeds auto-rendered if URL is present
    • Each song page links to:
      • Related lyrics (via lyric CPT)
      • Related chapters that mention the song
  • A new archive template (page-songs-referenced.php) was created for browsing referenced tracks.
  • Footnotes logic for featured song display was cleaned up and now includes:
    • Album cover thumbnail
    • Song title
    • Clickable video link (🎥)

🔎 Concept Relationship Linking

  • Concept CPT pages now support Related Concepts, enabling custom cross-linking between terms like “assumption” and “presupposition.”
  • Uses an ACF Post Object or Relationship field for manual control.
  • Related terms now display at the bottom of each Concept page in a clean list.

🧾 Footnotes UX Enhancements

  • A new title — “Notes & References” — is now rendered above each chapter’s footnotes block (<h3>).
  • Ensures a more professional, scannable section header.
  • Emoji headers, image styles, and link formatting were further standardized.
  • CPT reference logic was expanded to query by theme taxonomy.

📌 Update – July 7, 2025


✅ Footnote System Fully Migrated to CPT-Based Structure

Today I completed the full migration of my site’s legacy manual footnote system into a fully structured, CPT-driven system. This marks the end of an era for the ad hoc shortcode-based approach I had been using to manage footnotes within chapters.

🧠 Structured, Scalable References

The new system now supports:

  • CPT-linked references for all previously supported entities — including Artists, Books, Quotes, Movies, People, Song Excerpts, and Lexicon Concepts — with ACF fields structured per type.
  • External References CPT for all non-CPT sources, including Wikipedia entries, government documents, YouTube videos, image credits, magazine scans, and unknown/anonymous citations.

All references are now semantically tagged and fully queryable, with the ability to associate one or more sources with each chapter. The [referenced_works] shortcode dynamically displays all associated data, sorted and grouped by type.

🎹 Artists Featured + Songs Referenced

The “Artists Featured” section now supports up to four primary artists, each linked to their CPT and shown with portrait image and associated song title.
“Other Artists Featured” pulls from referenced CPT artists not already shown as primary and sorts them alphabetically.
Manual song references (not tied to CPTs) are listed in the “Songs Referenced” section — now stripped of thumbnails for clarity.

🔗 CPT-Driven Footnotes: Smarter, Cleaner

  • All referenced CPTs (People, Books, Movies, Quotes, Lyrics, Concepts) are sorted alphabetically.
  • Concepts include their definitions.
  • Quotes show the quote text directly beneath their title.
  • External references are displayed in their own section — External References — and include title, source name, and link (if available).
  • CPTs can now reference their own supporting sources via a relationship field to the Reference CPT, keeping footnotes clean while preserving citation metadata.

🛠️ Next Steps

Over the coming days, I’ll be revisiting all published chapters to convert embedded footnotes to the new reference model. This will centralize all citation logic, improve maintainability, and support future indexing, citation tracking, and visual enhancements.

This final migration unlocks the full potential of the site’s knowledge system and marks a major milestone in long-term content organization and attribution fidelity.


📌 Update – June 30, 2025

✅ Dev Site Maintenance Complete

Today I completed a long-overdue maintenance pass on my dev site, bringing it back in sync with my main site in both structure and workflow.

🧹 Content Cleanup & Structure Fixes

  • Reorganized the homepage sections: Pages (The Engine), Current Tasks (Posts), Demystifying Code (Chapters), Guides & Unrelated (Chapters), and Completed Tasks (Chapters).
  • Moved all completed tasks to the bottom of the page to reduce clutter while preserving documentation for future reference.
  • Ensured that task posts remain usable for writeups and documentation even if they don’t warrant full articles.
  • Finalized the new category-based structure for displaying and sorting chapter content by relevance and priority.

🔗 Theme Repo Connection to GitHub
I connected my dev site’s child theme to GitHub by:

  • Initializing a new Git repository directly in the theme directory.
  • Creating a clean, purpose-built .gitignore.
  • Committing all theme files and linking the directory to a new GitHub repo under the same account as my main theme.

This means both the main and dev themes are now versioned independently, with no conflicts — each is tied to its own private repo, but both remain accessible from the same GitHub login.


📌 Update – June 29, 2025

🚀 Migration Completed – VPS, NGINX, and Clean Config

The full migration from two separate WordPress installations (dev and www) to a single Debian 12–based VPS is now complete. The new setup runs NGINX with 1 GB RAM and 1 vCPU, sitting cleanly behind Cloudflare. Performance has noticeably improved, even before full caching optimization.

A detailed breakdown of the entire migration process — including NGINX setup, PHP-FPM tuning, database imports, and theme integrity checks — is now published as a standalone article.

📄 Read: [How I Rebuilt My WordPress Sites from Scratch on NGINX]

🧼 Post-Migration Cleanup in Progress

A series of fine-tuning and security cleanup tasks followed the main server switch:

🔐 Git Access Reconfigured
– Existing SSH keys were recovered from the old server
– Global identity set; safe directory warnings resolved without changing ownership of production directories

🗂️ Permissions Realigned
– User added to the www-data group
– Theme and plugin directories updated with group write access (775/664)
– Group sticky bit applied to maintain future permission integrity

🧪 WordPress Config & Database Users Audited
– All active wp-config.php files reviewed for correct DB references
– Redundant MariaDB users identified and marked for removal
– .disabled migration folder isolated and will be deleted after final review

📊 Smarter RAM Usage Observed
– Server appears to be using more memory, which is expected under Debian 12’s smarter caching
– Site feels faster even without Cloudflare — likely due to clean config and modern system libraries
– No swap usage or out-of-memory errors reported

✅ Status: Migration stable, configuration hardened, and cleanup nearly complete.

Next up: Cloudflare optimization testing, redundant user cleanup, and full theme asset audit.


🗓️ Past Updates


📌 Last Update – June 27, 2025

🧭 Search Experience Overhaul Begins
The search page has been redesigned to surface results across all CPTs (Chapters, Artists, Books, Concepts, Profiles, Movies, and Quotes), grouped by type and styled using a compact, two-column grid. This sets the foundation for a richer “Explore” experience with semantic discovery and smart surfacing of CPT-linked content.

🎶 Chapters by Song Index: Fully Automated
Two dynamic tables now replace the old manual spreadsheets: one sorted by narrative chapter order, the other alphabetically by artist. These tables pull from ACF fields directly and stay in sync with site content — no manual updates required.

🧑‍🎤 Artist & Song Metadata Display Finalized
Chapter templates now include clickable artist thumbnails and styled song titles. Legacy code cleanup removed unused template parts and resolved duplicate title issues. A database bug from the Wikipedia preview plugin was fixed at the metadata level, preventing the need for content migration.

🧩 Chapter CPTs: Fully Linked with Structured References
All chapter posts now use structured relationship fields in place of tags and categories. CPTs for Artists, Books, Concepts, Profiles, Movies, and Quotes are now linked directly and displayed with icons in a dynamic reference index at the bottom of each chapter. The old tag cloud is officially retired.

🛠️ ACF Standardization Project Initiated
A cross-site review and refinement of all ACF fields is underway. The goal is to ensure consistent field naming, flexible relationships, and future scalability across all CPTs — improving both content entry and automated linking.

🗝️ Portal Pages Key Finalized
The visual key explaining CPT icons is now styled for both narrow and wide layouts, with placement optimized for chapter pages. It enhances transparency around the site’s semantic linking structure and supports future enhancements to footnotes and cross-navigation.

📌 Last Update – June 23, 2025

🧠 Footnote System Fully Integrated

The long-planned automated footnote engine is now live and working inside chapters. This system supports:

  • 🔗 Inline references with automatic numbering and back-links
  • 📚 Dynamic retrieval of CPT data (books, concepts, etc.)
  • 🧭 CPT-specific icons and smart linking based on type:
    • 🎹 Artist Profiles
    • 📚 Book Citations
    • 🔎 Lexicon Entries
    • 👤 Biographical Figures
    • 🎬 Movies Referenced
    • 💬 Quote Library (coming soon)

Footnotes now pull directly from related CPTs, showing titles, definitions, cover images, and even source links when available — all while maintaining reversible reference arrows (↩︎) for context tracking.

📝 Manual References Supported

Not all references are CPTs. A fallback system allows standalone notes to be inserted manually, using shortcode attributes like text="...". These render in sequence with all other footnotes and maintain numbering integrity.

🎶 Songs Referenced: Structured Support Added

A new ACF field is now being added to each chapter to store secondary songs referenced (excluding the main one). These appear as a styled list at the bottom of the footnotes section, bolding the artist name and keeping formatting consistent:

Songs Referenced:
Tom Petty – Learning to Fly
Peter Gabriel – In Your Eyes

This ensures a clean visual trail of sonic context for every chapter — especially important for readers tracing intertextual music references.

📋 Toward Auto-Updating Artist/Song Indexes

The existing manually built artist–song–chapter spreadsheets are now being considered for automation. With all primary artists already stored as CPTs (and more referenced ones being added), future updates will explore:

  • Dynamic artist/chapter cross-lists
  • Alphabetical and chronological views
  • Public song indexes updated automatically via ACF fields

📚 Chapter Data Normalization Continues

As part of the footnote integration, each chapter is now being reviewed and structured around:

  • Featured artist(s) → tied to CPTs
  • Referenced books, profiles, concepts, movies → footnoted and linked
  • Inline quote blocks → migrating to reusable ACF/HTML fields
  • All external sources, even Wikipedia quotes → structured as manual references

This marks a significant shift from static references to semantic, linkable content blocks.


⚙️ Status Overview

✅ Footnote engine fully deployed with CPT integration
✅ CPT-specific icons and dynamic linking based on post type
✅ Manual notes and non-CPT references supported
✅ Songs Referenced field added to chapters

🔧 In Progress:

  • Automate artist/song chapter spreadsheet via CPTs
  • Create Quote CPT to expand footnote coverage (💬)
  • Continue migrating embedded content to structured fields

This footnotes system ties together every element introduced so far — turning chapters into relational nodes that link books, profiles, concepts, songs, and quotes in a transparent, reusable way.

📌 Last Update – June 21, 2025

🧱 Foundations Set: Full CPT Architecture Live

This week marks a major milestone: almost all primary Custom Post Types (CPTs) are now active and structured. These include:

  • 📚 Books — cited sources with quotes, covers, and links to chapters
  • 🧑‍🎓 Profiles — authors, philosophers, and referenced people
  • 🎤 Artists — musicians connected to featured songs
  • 📝 Lyrics — standalone lyric excerpts tied to songs, artists, and chapters
  • 🎬 Movies — referenced film works
  • 💡 Concepts (Lexicon) — definitions and recurring symbolic terms

Each CPT is still in its early phase, but the core relationships are working. These building blocks will power a much richer system of cross-linking and semantic navigation across the entire site.

The only major CPT missing from this is quotes, but the lyric one could take a few weeks or more to migrate, once that’s done, quotes will be easy.

🧩 System Clarification: When Is a Lyric Its Own Thing?

I’ve clarified an important boundary:

  • Featured song lyrics that drive a chapter’s core are not stored separately — they live inside the chapter.
  • All other lyrics are treated as independent CPT entries (reused across multiple contexts).

This separation will allow reusable lyrics to appear in artist profiles and a new centralized “Lyric Quotes” directory — while preserving more narrative, embedded ones inside chapters.


🧪 Rendering Lyric Blocks

A breakthrough this week: lyric CPTs can now render full Cover Block HTML inside the frontend — not just raw text. This opens the door to eventually replacing static lyric blocks in chapters with structured, centrally managed versions. The visual design is still being refined, but this is a key technical unlock.

Next Steps:

  • Shrink and standardize Cover Block layouts (esp. mobile readability & image balance)
  • Strip leftover formatting/code from plugin residues
  • Decide whether original chapter lyrics will be replaced or duplicated

🧱 Theme CSS Refactor Underway

To support long-term consistency and load performance:

  • All custom CSS is being migrated from the WordPress Customizer into a proper style.css file in the child theme.
  • CSS is now being reorganized with section headers, comments, and dead code removed.
  • Image styling (especially for artist portraits and lyric backgrounds) is being evaluated for mobile/desktop responsiveness.

⚙️ Status Overview

✅ CPTs created: Books, Profiles, Artists, Concepts, Lyrics, Movies
✅ Cover Block rendering enabled for lyric CPTs
✅ CPT-specific pages and relationship fields functional
✅ Custom CSS moved to child theme for better control

🔧 In Progress:

  • Standardize Cover Block sizing, layout, and cleanup
  • Image positioning and mobile styling adjustments
  • Begin migrating reusable chapter lyrics into lyric CPTs

This sets the stage for future dynamic views across the site: artists showing all lyrics, books pulling all quotes, and definitions aggregating references — all connected by relationships, not repetition.


📌 Update – June 20, 2025

🔗 Cross-Linking Architecture Expands

The reference system has grown significantly this week. Additional Custom Post Types (CPTs) are now live, and the workflow for structuring, linking, and visualizing them is becoming much clearer.

New CPTs Created:

🎤 Artists — now linked directly to chapters instead of tags, featuring primary headshots and optional secondary fields
🧑‍🎓 Profiles — for cited philosophers, historians, and thinkers, with Wikipedia summaries or custom bios
🎬 Movies — rectangular poster-driven layout, following the Books structure
💡 Concepts (Lexicon) — individual definition pages with alphabetical navigation and future aggregation of quotes from Books, Profiles, and Chapters

All CPTs now include ACF fields for summaries or excerpts and are indexed by custom directory pages (e.g. /artists-featured/).

📖 Goodbye Tags, Hello Objects

The old WordPress tag system is being deprecated in favor of structured relationships. Instead of showing generic tags, chapter pages will now pull connected people, books, movies, and concepts through ACF relationships — creating a clean, semantic index of what each chapter references.

➡️ Plan: Eventually phase out tags completely or retain only as search helpers for unstructured mentions.

🎯 Single Page Navigation Unified

Each CPT now includes its own version of alphabetical navigation at the bottom (e.g., “Next Concept”, “Previous Profile”). These use rounded or rectangular thumbnails depending on type — reusing featured images for visual consistency with the homepage.

🧰 Tools & Automation

  • WP-CLI scripts were used to:
    • Batch assign featured images to CPTs missing thumbnails
    • Generate excerpts based on title patterns (e.g. “Books Cited Page for X”)
    • Extract and import Wikipedia slugs for Profiles, Artists, and Movies

This makes it easier to scale new entries and ensure visual consistency across search results and index grids.

💡 Editorial Logic Clarified

CPTs are no longer limited to content already featured in chapters. I can now create standalone concepts, people, or works that exist independently — and pull them into chapters only if relevant. This opens up the site to speculative entries, archival sources, or pre-chapter research.

🔄 Live Data, Linked Cleanly

Each CPT single page (Concept, Artist, Movie, Profile) can now act as a source of truth — storing not just a summary, but connected quotes, lyrics, or references. This means one artist can list all featured lyrics, one book can show all cited quotes, and concepts can show all related appearances — even if the concept isn’t fully developed in a chapter yet.

Next Steps:

  • Migrate legacy tags into structured CPT entries
  • Standardize image dimensions for Book and Movie covers
  • Begin collecting quotes into a dedicated CPT or shared repeater field
  • Continue building the backend infrastructure to support footnotes and backlinks

Status: Site-wide architecture is now flexible, futureproof, and fully CPT-driven. The foundation is in place for content to evolve organically — with better structure, better relationships, and fewer hacks.


📌 Update – June 13, 2025

📚 Narrative System Update: Dynamic References & Book Integration

As the site’s thematic narratives expand, I’m beginning the process of building a structured reference layer alongside the existing chapters. This will support reusability, dynamic aggregation, and more intuitive organization for books, quotes, footnotes, and symbolic elements.

🎯 Immediate Task: Create a book Custom Post Type (CPT) to store all referenced books independently from narrative threads.

Why Books Come First

  • Books are consistently referenced across chapters.
  • They contain quotes, footnote data, and symbolic importance.
  • Creating a CPT allows books to be listed dynamically and reused elsewhere.

Coming Functionality

  • 🗂️ Grid Page to display all books with covers and links.
  • 🔗 Relationship Fields in each chapter to connect referenced books.
  • 📝 Custom Footnote System that pulls linked books (and other sources) into a clean reference list at the bottom of each chapter.

On Footnotes & Fragments

Existing footnotes were manually copied from older posts but lack structural integrity. A new footnote system will draw from structured sources: books, movies, songs, and possibly narrative fragments. This supports dynamic generation and long-term consistency.

Forward Plan

  1. ✅ Create Book CPT with ACF fields (title, cover, author, quotes, related chapters).
  2. ✅ Add “Referenced Books” relationship field to chapters.
  3. ✅ Display books dynamically at the bottom of each chapter as footnotes.
  4. 🚧 Evaluate quotes, songs, and other references for future CPT integration.
  5. 🚧 Create fallback repeater field for manual footnotes (non-CPT sources).

This system will evolve one chapter at a time. Each chapter will be reviewed and linked to its sources, gradually revealing the larger structure of the site. As always, form follows function — the design will emerge naturally from the content itself.


Status: Planning complete. Build starts tomorrow.

📌 Previous Summary of Completed Tasks – May 26, 2025


✅ Milestones, Fixes & Finished Work

A broad overview of the core technical work behind this site — from the initial server setup to ongoing configuration, optimization, and custom development. This page will remain a high-level reference and summary, with each major area having its own breakdown page over time.


🔧 Server & Hosting Setup

  • Deployed a Debian Linux VPS using Linode.
  • Installed and configured the full LAMP stack (Linux, Apache, MariaDB, PHP).
  • Hardened server access with:
    • Cloud firewalls allowing SSH only from personal IP.
    • Unattended upgrades enabled.
    • SSH certificate-based authentication.
    • Disabled root login and created dedicated user account.

🌐 WordPress Installation & Configuration

  • Installed WordPress and configured the base setup.
  • Installed a WordPress theme and created a child theme for custom edits.
  • Integrated security tools:
    • Wordfence for firewall, login protection, and monitoring.
    • Cloudflare for DNS/CDN with custom firewall rules to restrict access to admin areas.
  • Optimized Apache settings for VPS resource constraints.
  • Restricted site access to only Cloudflare and personal IP.

📦 Backups, Storage & File Management

  • Created site backups using remote object storage across two VPS providers.
  • Wrote sync systems for automated backups.
  • Cleaned up temporary files and old kernels to free space.

📁 Content Development

  • Created posts and gradually migrated them into a chapter-based system using Advanced Custom Fields Pro.
  • Built supporting site content:
    • Site index
    • Biographies
    • Lexicon
    • Plans for tag hubs and dynamic pages

🛠️ Tools & Automation

  • Installed and configured WP-CLI for advanced WordPress management.
  • Started using Visual Studio Code as a coding environment.
  • Initialized Git to track theme and plugin code changes.

📱 UI / UX Customization

  • Created a child theme and began customizing:
    • CSS tweaks
    • Mobile responsiveness improvements
    • Template overrides and conditional rendering
  • Ongoing work to replace Cover Blocks with WebP screenshots for consistency and performance.