QR generation contract
The QR generator resolves selected destinations into URLs, groups them, and renders codes for download. This page documents what it selects, what it produces, and what determines availability.
Destination types
| Selection | Resolves to |
|---|---|
| Home | The site home URL, per language where applicable |
| Menu archive | The post type archive URL for that menu type |
| Category archive | The term archive URL for that category |
| Custom URL | The address entered, used literally |
Availability rules
Menu archives appear only when the post type publishes an archive. The generator resolves the archive link and omits any menu type that has none.
Category archives are listed for the supported menu taxonomies, each labelled with the menu type it belongs to.
This is why a site whose menu types do not publish their own archives still has complete QR coverage: its category archives are the public menus.
Language grouping
Results are grouped, and the grouping depends on the translation layer present:
| Environment | Grouping |
|---|---|
| Polylang active | One group per language, resolved per language |
| POM Translate active | One group per configured language, localised from the base URLs |
| Neither | A single default group |
Each result carries a group label, a display title and filename parts, so downloaded files identify their destination and language.
Output formats
Each result offers PNG and SVG. The SVG is the vector form and is the correct choice for print; the PNG is a raster image for screens.
The codes encode a URL and nothing else. There is no tracking parameter, no redirect layer and no analytics attached.
The custom URL
Used exactly as entered, and validated before generation. An address without a scheme is rejected rather than encoded.
A custom URL is not localised: it is a literal address, so a multilingual site needs one per language if the address differs per language.
Stability of the encoded address
Because the code contains the destination address:
- content changes never invalidate a code;
- address changes always do.
Address changes that matter: renaming or deleting a category, retiring a menu type, changing the site domain, or restructuring the front page.
Integrations that generate printed material should therefore prefer the home page or a menu archive over a category, and should record the encoded URL alongside the artwork.
Access
The generator is an administrative screen requiring the permission to edit posts, and its data request is nonce-protected. It exposes no public endpoint for generating codes.
Guidance
- Resolve and verify the destination before generating.
- Store the SVG as the print master.
- Record the destination URL, the language and the date alongside each generated file.
- Treat a category code as the least durable option.
- Do not embed tokens or session data in a custom URL; a printed code is public forever.