{"id":1363,"date":"2026-02-15T20:14:33","date_gmt":"2026-02-15T20:14:33","guid":{"rendered":"https:\/\/docs.ai.drawconclusions.org\/?page_id=1363"},"modified":"2026-02-24T12:45:57","modified_gmt":"2026-02-24T12:45:57","slug":"theme-draconai","status":"publish","type":"page","link":"https:\/\/docs.ai.drawconclusions.org\/?page_id=1363","title":{"rendered":"Theme: draconai"},"content":{"rendered":"<h2>Draconai<\/h2>\n<ul>\n<li>Minimal WordPress theme used for DevDocs.<\/li>\n<li>Rendering uses Twig templates (<code>templates\/*.twig<\/code>) with thin PHP controllers.<\/li>\n<li>Shared sidebar logic is centralized via <code>partials\/sidebar-left.php<\/code> and <code>partials\/sidebar-right.php<\/code> (include-based reuse, no duplicated layout logic).<\/li>\n<li>Top menu includes the default WordPress search bar at the far right (after the theme toggle).<\/li>\n<li>Search results render a dedicated results list with counts and snippets (<code>search.php<\/code>).<\/li>\n<li>Location: <code>server\/var_www\/devdocs_wp\/wp-content\/themes\/draconai\/<\/code>.<\/li>\n<li>Provides the layout styling and navigation for documentation pages.<\/li>\n<li>Includes a theme switcher toggle in the top menu (light\/dark).<\/li>\n<li>Theme rendering bootstraps Twig through <code>dracon_twig_echo<\/code> and a fallback bootstrap include if MU bootstrap was not loaded yet.<\/li>\n<li>Section layers are pulled from the required <code>doc_layer<\/code> taxonomy (fallback to legacy top-level slug mapping) and rendered as a colored header badge + left border (see <code>server\/var_www\/devdocs_wp\/wp-content\/themes\/draconai\/functions.php<\/code>).<\/li>\n<li>The first word in the docs sidebar is &quot;Docs&quot;; it must show the latest update time next to it, e.g. &quot;Docs (2023.12.12 12:12:55)&quot; (format Y.m.d H:i:s, from the most recent page <code>post_modified<\/code>).<\/li>\n<li>Right sidebar starts with <code>docs_right_sidebar<\/code> hook output (priority-based plugin injections, e.g. page-origin badge at the top).<\/li>\n<\/ul>\n<h2>Recreate From Scratch<\/h2>\n<h2>Recreate<\/h2>\n<p>If the theme is deleted, recreate it using these requirements:<\/p>\n<ul>\n<li>Create a folder at <code>server\/var_www\/devdocs_wp\/wp-content\/themes\/draconai\/<\/code>.<\/li>\n<li>Add <code>style.css<\/code> with base layout styles (two sidebars, main content column, header, typography).<\/li>\n<li>Add <code>functions.php<\/code> that enqueues <code>style.css<\/code>, registers the <code>top-menu<\/code>, and renders through Twig.<\/li>\n<li>Add <code>index.php<\/code>, <code>search.php<\/code>, <code>page-categories.php<\/code>, and <code>taxonomy-doc_category.php<\/code> as thin controllers.<\/li>\n<li>Add Twig templates under <code>templates\/<\/code> and include-based shared sidebar partials under <code>partials\/<\/code>.<\/li>\n<li>Each template must output the layout shell only and trigger plugin hooks for dynamic sections:<\/li>\n<li><code>docs_updated_time<\/code> in the &quot;Docs&quot; sidebar heading.<\/li>\n<li><code>docs_sidebar_tree<\/code> for the left tree.<\/li>\n<li><code>docs_breadcrumbs<\/code> for breadcrumbs.<\/li>\n<li><code>docs_layer_badge<\/code> for the layer badge.<\/li>\n<li><code>docs_categories_list<\/code> for per-page categories.<\/li>\n<li><code>docs_categories_sidebar<\/code> for the right sidebar categories list.<\/li>\n<li><code>docs_children_list<\/code> for the right sidebar children list.<\/li>\n<li><code>docs_search_results<\/code> for search results.<\/li>\n<li><code>docs_taxonomy_results<\/code> for taxonomy pages.<\/li>\n<li><code>docs_categories_index<\/code> for the categories index page.<\/li>\n<p>The theme must not call plugin functions directly; only use hooks.<\/p>\n<\/ul>\n<p class=\"developerdocs-id-search\" aria-hidden=\"true\">DeveloperDoc ID: dd_id_5c3f2f1d27<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Draconai Minimal WordPress theme used for DevDocs. Rendering uses Twig templates (templates\/*.twig) with thin PHP controllers. Shared sidebar logic is centralized via partials\/sidebar-left.php and partials\/sidebar-right.php (include-based reuse, no duplicated layout logic). Top menu includes the default WordPress search bar at the far right (after the theme toggle). Search results render a dedicated results list with [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1308,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"doc_category":[9],"doc_layer":[29],"class_list":["post-1363","page","type-page","status-publish","hentry","doc_category-ui","layer-dd_id_251cc20e41"],"_links":{"self":[{"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=\/wp\/v2\/pages\/1363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1363"}],"version-history":[{"count":6,"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=\/wp\/v2\/pages\/1363\/revisions"}],"predecessor-version":[{"id":3907,"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=\/wp\/v2\/pages\/1363\/revisions\/3907"}],"up":[{"embeddable":true,"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=\/wp\/v2\/pages\/1308"}],"wp:attachment":[{"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1363"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=%2Fwp%2Fv2%2Fdoc_category&post=1363"},{"taxonomy":"doc_layer","embeddable":true,"href":"https:\/\/docs.ai.drawconclusions.org\/index.php?rest_route=%2Fwp%2Fv2%2Fdoc_layer&post=1363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}