{"id":392205,"date":"2026-10-27T21:51:31","date_gmt":"2026-10-27T21:51:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/inquadro-qr\/"},"modified":"2026-10-27T21:51:12","modified_gmt":"2026-10-27T21:51:12","slug":"sitemade-qr","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/sitemade-qr\/","author":15755127,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1.4","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Sitemade QR","header_author":"Giuseppe D'Acri","header_description":"Generate QR codes 100% locally, with no external APIs. One QR code per post or page, saved to the Media Library, with PNG, SVG and PDF downloads and a shortcode.","assets_banners_color":"102e50","last_updated":"2026-10-27 21:51:12","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/giuseppedacri.it","rating":0,"author_block_rating":0,"active_installs":0,"downloads":49,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"giuseppedacri","date":"2026-10-27 21:51:12","revision":3769583}},"upgrade_notice":{"1.1.0":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3769583,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3769583,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3769583,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3769583,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[3153,7312,1373,7936,80],"plugin_category":[43],"plugin_contributors":[289068],"plugin_business_model":[],"class_list":["post-392205","plugin","type-plugin","status-publish","hentry","plugin_tags-print","plugin_tags-qr","plugin_tags-qr-code","plugin_tags-qrcode","plugin_tags-shortcode","plugin_category-customization","plugin_contributors-giuseppedacri","plugin_committers-giuseppedacri"],"banners":{"banner":"https:\/\/ps.w.org\/sitemade-qr\/assets\/banner-772x250.png?rev=3769583","banner_2x":"https:\/\/ps.w.org\/sitemade-qr\/assets\/banner-1544x500.png?rev=3769583","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/sitemade-qr\/assets\/icon-128x128.png?rev=3769583","icon_2x":"https:\/\/ps.w.org\/sitemade-qr\/assets\/icon-256x256.png?rev=3769583","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Sitemade QR creates a QR code for any post, page or public custom post type. Everything happens on your server: the plugin never calls an external API or online QR generator, and it sends no data anywhere.<\/p>\n\n<p>It is built for QR codes that end up on paper: restaurant menus, product labels, flyers, event posters. You generate the code once, it is stored in the Media Library, and you can download it as a vector file ready for the print shop.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>QR column in the post and page lists.<\/strong> A grey icon means no QR code yet, green means it exists. One click generates or regenerates it without leaving the list.<\/li>\n<li><strong>Meta box in the editor<\/strong> with a preview and three downloads: PNG, SVG and PDF.<\/li>\n<li><strong>Vector SVG and PDF<\/strong>, sharp at any print size. They are created on download and not stored.<\/li>\n<li><strong>PNG saved to the Media Library<\/strong> and attached to its post.<\/li>\n<li><strong>Optional automatic generation<\/strong>, off by default because most sites need QR codes only on a few pages. When it is on, the QR code is created on publish and regenerated when you save a post whose address has changed.<\/li>\n<li><strong>Bulk action<\/strong> \"Regenerate QR\" for content published before you installed the plugin.<\/li>\n<li><strong>Shortcode<\/strong> to show a QR code anywhere in your content or theme.<\/li>\n<li><strong>WP-CLI command<\/strong> to generate QR codes for many posts at once.<\/li>\n<\/ul>\n\n<h4>Shortcode<\/h4>\n\n<pre><code>[sitemade_qr] shows the QR code of the current post or page.\n\n[sitemade_qr id=\"123\"] shows the QR code of a specific post.\n\n[sitemade_qr text=\"https:\/\/example.com\/promo\" size=\"8\"] shows a QR code for any text or URL. The image is created the first time the page is viewed and reused afterwards.\n<\/code><\/pre>\n\n<p>Optional attributes: <code>size<\/code> (pixels per module, 1\u201320), <code>alt<\/code> (alternative text) and <code>class<\/code> (extra CSS class).<\/p>\n\n<h4>WP-CLI<\/h4>\n\n<pre><code>wp sitemade regenerate generates the missing QR codes for all enabled post types. Options: `--post_type=&lt;type&gt;`, `--all` to regenerate every QR code, `--dry-run` to count posts without generating anything.\n<\/code><\/pre>\n\n<h4>Privacy<\/h4>\n\n<p>Sitemade QR makes no external requests, sets no cookies and collects no data. QR codes are computed in PHP on your server.<\/p>\n\n<h4>Requirements<\/h4>\n\n<p>The PHP GD extension, used to draw PNG images. It is enabled on most hosting plans. If it is missing, the plugin will not activate and explains what to ask your hosting provider.<\/p>\n\n<h4>Credits<\/h4>\n\n<p>QR code encoding is a PHP port of the <a href=\"https:\/\/www.nayuki.io\/page\/qr-code-generator-library\">QR Code generator library<\/a> by Project Nayuki, released under the MIT License.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin from Plugins \u2192 Add New, or upload the <code>sitemade-qr<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate it from the Plugins screen.<\/li>\n<li>Open the <strong>Sitemade QR<\/strong> menu to choose the post types, the image size and the error correction level.<\/li>\n<li>In Posts or Pages, click the QR icon in the \"QR\" column to generate a code, or open a post and use the QR Code meta box.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20use%20any%20external%20service%3F\"><h3>Does the plugin use any external service?<\/h3><\/dt>\n<dd><p>No. QR codes are generated on your server with code included in the plugin. Nothing is sent to third parties.<\/p><\/dd>\n<dt id=\"which%20download%20should%20i%20give%20to%20a%20print%20shop%3F\"><h3>Which download should I give to a print shop?<\/h3><\/dt>\n<dd><p>SVG or PDF. Both are vector files: they stay sharp at any size, from a business card to a poster. PNG is meant for the web.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20printed%20qr%20codes%20if%20i%20change%20a%20page%27s%20slug%3F\"><h3>What happens to printed QR codes if I change a page's slug?<\/h3><\/dt>\n<dd><p>If you change the slug and save the post, its QR code is updated automatically when automatic generation is on; otherwise click \"Regenerate QR\". Changes that move many addresses at once, such as a parent page's slug, a category slug or the permalink structure in Settings \u2192 Permalinks, are not detected: select the affected content and use the \"Regenerate QR\" bulk action. Codes already printed, though, still point to the old address. Before changing the address of a page with printed QR codes, set up a redirect from the old address to the new one.<\/p><\/dd>\n<dt id=\"which%20error%20correction%20level%20should%20i%20choose%3F\"><h3>Which error correction level should I choose?<\/h3><\/dt>\n<dd><p>M (15%) is the default and fits most uses. Choose H (30%) for codes printed on surfaces that may get scratched or dirty. Higher levels make the code denser.<\/p><\/dd>\n<dt id=\"what%20is%20removed%20when%20i%20uninstall%20the%20plugin%3F\"><h3>What is removed when I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Only the plugin settings. QR images already in the Media Library stay where they are, because they may already be in use on your site or in print.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<li>Built-in QR encoder (port of Project Nayuki's library, MIT): no third-party QR library, loaded only when a QR code is generated.<\/li>\n<li>PDF download is now vector and sharp at any size.<\/li>\n<li>The <code>text<\/code> shortcode reuses the same image instead of creating a new file on every page view, and the <code>size<\/code> attribute now works.<\/li>\n<li>The shortcode generates a missing QR code only for public content of an enabled post type.<\/li>\n<li>Admin script without jQuery, admin styles in a stylesheet, screen reader support in the QR column.<\/li>\n<li>All interface text in English, ready for translation.<\/li>\n<\/ul>","raw_excerpt":"Generate QR codes for posts and pages on your own server, with no external APIs. PNG in the Media Library, SVG and PDF for print.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/392205","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=392205"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/giuseppedacri"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=392205"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=392205"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=392205"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=392205"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=392205"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=392205"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}