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.