=== Aumcreate === Contributors: aumcreate Requires at least: 6.2 Tested up to: 7.1 Requires PHP: 7.4 License: GNU General Public License v2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments A theme built around the Aumframe visual editor: you design templates, and each template draws every page it matches. == Description == Aumcreate is the front end for designs made in the Aumframe editor. You do not lay out pages one at a time — you design a **template**, give it a rule (the front page, every post in a category, single products, search results, 404), and every page that matches is drawn by that one design. What the theme itself brings: * A day/night palette with a toggle, where both modes are checked for contrast rather than guessed * Site-wide design settings — colours, fonts, container width, logos — that designs read from, so a palette change moves the whole site * No CSS framework and no jQuery on the front end; the only styles are the ones your design compiled to * Menus, widgets, featured images, comments and translation support, all in their usual WordPress places = Aumframe is required for the editor = The theme renders designs; **Aumframe** creates them. On its own the theme is an ordinary WordPress theme: it draws a site header with your logo and primary menu, a footer, and the usual blog, archive, search, single and page templates. What it cannot do without the plugin is let you design anything — install Aumframe from the Plugins screen for that. = Optional engines = * **WooCommerce** — shops * **AumNexCart** — a product catalogue with enquiries instead of a checkout * **AumReserva** — appointment booking * **AumViso** — structured data and AI-readable summaries Each is optional. The theme notices which one is active and offers the matching design surfaces; with none of them it is a content site. == Installation == 1. Appearance > Themes > Add New > Upload Theme, or upload the folder to `/wp-content/themes/` 2. Activate it 3. Install and activate the **Aumframe** plugin when prompted 4. Open **AumCreate** in the admin menu to set your palette, fonts and logos == Frequently Asked Questions == = Does it work without Aumframe? = Yes, as a plain theme — your posts and pages render, menus and widgets work. What you do not get is the template designer, which is the reason to use this theme. = Can I still use the block editor? = Yes. On a page that a design draws, the block editor still opens and still stores your content; the design decides where that content appears. Pages no design matches are rendered the ordinary way. = Does it send anything to your servers? = No. The theme makes no requests to aumcreate.com. The one place it looks outward is the plugins screen in its own settings, which asks wordpress.org — through WordPress's own API — whether our free plugins are installed. = Where do the colours come from? = From the theme's settings, as a small set of named tokens (brand, ink, paper, accent…) with a light and a dark value each. Designs refer to the names, so changing a token changes every design that uses it. == Notes for reviewers == Three Theme Check warnings are left in deliberately. Each is a case where the change that would clear the warning would make the theme worse, so the reasoning is written down here instead. 1. **File write operations — `inc/catalog/adapters/woo-kit.php`.** The three files written are WooCommerce's own download-protection files (`index.html` and `.htaccess`) inside `woocommerce_uploads/`. They are created when WooCommerce installs; the theme only writes one if it is missing, which happens on sites where that install step never ran. Not writing them would clear the warning and leave the uploads folder listable, so the write stays. 2. **File read operations — `inc/admin/class-kit-package.php`.** The `readfile()` call streams a generated ZIP to the browser as a download, immediately after the `Content-Disposition` header. Replacing it with `file_get_contents()` would satisfy the check by loading the whole archive into memory first, which is what `readfile()` exists to avoid. 3. **More than one text domain — `aumcreate` and `woocommerce`.** Every string that uses the `woocommerce` domain is inside a WooCommerce template override under `woocommerce/`, and they are WooCommerce's own strings ("Product", "Price", "Quantity", "Your order", "Coupon code" and so on). Giving them the theme's domain would drop WooCommerce's existing translations for a checkout page that is already translated into dozens of languages. The theme's own strings all use `aumcreate`. The `role="search"` warning that earlier versions carried is gone as of 2.20.0: the form markup now lives in `searchform.php`, so it goes through core's `get_search_form()` and its filters. == Changelog == = 2.27.1 = * The Theme URI was the one string in the Simplified Chinese translation with an empty translation, so the file sat at 510 of 511. A URL is translated to itself here, the same as the other two URLs in the file. Nothing a visitor or an administrator sees changes. = 2.27.0 = * **Template kits left the theme.** The Import / Export tab and the Template & Plugins tab are gone, together with the two classes behind them. Installing a kit, exporting one, and seeing which kit a site has are all the business of the kit manager that installs it — and a site that only downloaded this theme has no kit at all, so both screens were empty for that reader. The theme settings screen is now five tabs, every one of them a setting of the theme. * **The theme no longer mentions plugins anywhere in the admin.** A notice headed "The following plugins are required", with icons and a one-click installer, used to sit above every settings tab, and a second notice told template buyers which plugins their kit was missing. Both are gone, along with the two classes behind them, the filter they exposed, the scripts, the styles, and the icons. The theme renders a complete site on its own — site header, footer, card listings, and every template — so it has nothing to report as missing. The one audience that does have plugin requirements, people who bought a template, gets them from the kit manager that installs the template, which is the only thing that knows which template they have. * **Fixed: seven database queries on the author profile read a variable that had not existed since the interactions table moved to the plugin.** On a site without that plugin the page printed six `Undefined variable` warnings above the content, and the queries ran with no table name. Follower, following, liked, and favourited lists now go through the plugin's own API and return empty when it is absent. * **Fixed: the Import / Export tab was labelled "Import/Export Settings".** It has never touched settings; both halves move a template kit. A settings section registered for that tab, describing a feature that does not exist, was never rendered by anything and has been removed. = 2.23.0 = * **Every output in the theme now goes through an escaping function.** `phpcs` reported 299 unescaped outputs across nineteen files; it reports none. Four of them were real holes rather than false positives: two translated strings written straight into `title` attributes, a post title and another translated string written into markup, in the gallery and video preview boxes of the post editor. A translation containing a quotation mark was all it would have taken. * **Icons are echoed through `aumcreate_the_icon()`.** Fifty-one call sites used to echo `aumcreate_icon()`, which no static check can clear on its own. The echoing twin states the argument once, the way `the_title()` stands beside `get_the_title()`, instead of fifty-one copies of a comment or a rule file that only applies when the checker is invoked a particular way. * **Fixed: the icon helper did not escape attribute names.** Values always went through `esc_attr()`; the names did not. Every caller in the theme passes a literal, so nothing was broken — but the helper now vouches for its own output, and a guarantee that holds only because of today's callers is not one. * Dead code found on the way out: two variables printed into the theme-mode radio markup that had been assigned the empty string ever since the logic that set them was removed, and two more left over from a custom-colour loop. * Attribute text uses `esc_attr_e()` rather than `esc_html_e()`, and one file that had picked up a handful of Unix line endings is consistent again. Both were caught by Theme Check, not by hand. = 2.22.0 = * **The blog index and the search results are now the same cards the archive and author pages use.** Both templates had been rendering a bare title, date and excerpt whose classes carried no rules at all, while the theme already owned every piece they needed: `aumcreate_get_post_cover()` (featured image, then a gallery's first image or a video poster, then the “Default post thumbnail” from the settings), the `.posts-grid` / `.post-card` design in `archive-cards.css`, and the views/likes/ favorites row. Four listings in this theme now share one card instead of drifting apart. * **Fixed: search results fell back to a cover image that does not exist.** With no default thumbnail set in the theme settings, every result pointed at `assets/common/images/default-thumbnail.jpg` — the file is under `assets/demo/default/`. Resolving the cover through the shared helper removes both the broken path and a second copy of the lookup. * **Fixed: the “Search Results for …” heading was invisible.** It used the single-post hero's class, which hardcodes white for a title that sits on a cover image under a dark overlay (21:1 there). With no hero behind it the same white measured 1.11:1 against the page — now 13.08:1. * **Fixed: card dates and comment counts failed contrast in dark mode.** `.post-meta` hardcoded a grey that measured 3.22:1 at 13.6px on a dark card, below the 4.5:1 WCAG asks for text that size. It is now derived from the ink the theme already resolves for the background, so it follows the colours the site owner configured: 8.37:1 dark, 5.53:1 light. * **Fixed: cards showed `0` views, `0` likes and `0` favorites when nothing could count them.** Those numbers come from the plugin; without it every getter returns zero and the row was drawn anyway. It is now omitted entirely, as the single-post templates have always done. * The post-stats renderer existed twice, once inside author.php and once inside archive.php — the second with no caller at all — and neither could be reached from another template. It is one helper in `inc/helpers/post-stats.php` with three callers. The card stylesheet's enqueue likewise moved out of archive.php so that more than one template can ask for it. = 2.21.1 = * **The theme now draws a site header and footer of its own when Aumframe is not active.** Until this release a site running only the theme had no `
` element at all and an empty `