=== 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 == Two 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. **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.29.3 = * Fixed: the **Display Name** field now works. On the registration form and on the author page it could be filled in and saved without error, and the value never changed: the theme also carried a rule that rewrote every display name back to the account's nickname, and that rule ran last. The rule has been removed. Names already stored are unchanged. * Removed: the theme no longer alters other plugins' admin screens - the buyer name in the WooCommerce orders list, the Name column in Users, the customer search results on the order screen, and a filter on user metadata. None of these is part of how a theme presents a site. = 2.29.1 = * Changed: the theme's settings page has moved. It is now **Appearance - Theme Settings**, where WordPress expects a theme's own screen to be. The address of the page changes with it; any bookmark to the old one should be replaced. * Changed: the theme no longer stores a copy of the "Anyone can register" setting. That setting belongs to WordPress and is edited in Settings - General; the theme now stores exactly one option row of its own, holding all of its settings. * Changed: the settings a template carries for AumViso and AumLang are now applied by Aumframe instead of by the theme, so they also take effect on a site that runs a different theme. Requires Aumframe 1.35.0. * Changed: the theme no longer redirects to its settings page when activated, and no longer rewrites existing users' display names. * New: a skip link to the main content, and a main landmark on every template. * Removed: the bundled copy of GSAP, which is not distributed under a GPL-compatible licence. Nothing in the theme used it. * Fixed: a new site no longer starts with the theme author's logo in its header and on its login screen. The four logo settings now default to empty, and with no logo set the header shows the site title and the login screen keeps the WordPress logo. Sites that already have a logo set are unaffected. * Changed: the theme screenshot now shows the theme's own front end rather than a graphic. = 2.28.7 = * Changed: the like and favourite counts on single posts are read from the interaction table rather than from cached post meta. The cache can drift; the table is the source the counts are computed from, and a single post costs one query per count. = 2.28.6 = * A filter callback pointed at a method that does not exist. `AumCreate_Viso::boot()` registered `aumviso_analyzable_content` against `analyzable_content()`, and that method has never been defined in any released version, so on a site running AumViso every SEO score raised an uncaught `TypeError` instead of returning content. The registration is removed. Nothing that worked before stops working — the callback never ran — but AumViso now scores the stored post content, which is empty on a page whose layout comes from a template. = 2.28.5 = * The login screen's fallback background pointed at an image the theme has never shipped (`assets/demo/default/images/default-login-bg.jpg`). `get_theme_file_uri()` returns a URL whether or not the file exists, so a site that had not configured any carousel images showed a broken image on its login page. There is no fallback now: with no images the carousel renders empty. = 2.28.4 = * Every function, class, option, meta key and JavaScript object the theme declares is now prefixed with the theme slug: `aumcreate_` for functions and stored keys, `AUMCREATE_` for constants and script globals, and `AumCreate_` for the one walker class. The previous `aum_` prefix is three characters, which is neither the theme slug nor long enough to keep another theme or plugin from colliding with it; WordPress.org asks for at least four. Ninety-five names moved, across 390 references. * Twenty-two of the names involved belong to the Aumframe plugin rather than to the theme, and now use `aumframe_`. The theme requires Aumframe 1.31.0 or later for those. * Stored data moves with this release. The user profile fields (avatar, bio, gender, birthday, location, cover, display name, website) and the per-post template, gallery and video selections are read under their new key names, so values saved by an earlier version are not found after upgrading. No migration routine is included. * A child theme that calls a renamed function directly needs the new name. Hooks, shortcodes and CSS class names are unchanged. = 2.27.2 = * **mbstring is not guaranteed, and this assumed it was.** PHP's mbstring extension is very common, but WordPress lists it as recommended rather than required, so a site can run perfectly well without it. On such a site the functions used here do not exist at all and the page dies with "Call to undefined function". Nothing here needs mbstring any more. Here it was trimming the text stored for the search index, which runs while a post is saved, so on a server without mbstring saving a post failed. = 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 `