{"id":299501,"date":"2026-04-30T10:20:38","date_gmt":"2026-04-30T10:20:38","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/egf-reader-shortcode\/"},"modified":"2026-04-30T10:20:28","modified_gmt":"2026-04-30T10:20:28","slug":"shakvaro-egf-reader-shortcode","status":"publish","type":"plugin","link":"https:\/\/mr.wordpress.org\/plugins\/shakvaro-egf-reader-shortcode\/","author":20093503,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.1","stable_tag":"1.0.1","tested":"6.9.4","requires":"5.8","requires_php":"7.2","requires_plugins":null,"header_name":"Shakvaro EGF Reader Shortcode","header_author":"Shakil Ahamed","header_description":"Embed and play EGF 1.1 interactive games inside WordPress posts or pages with a simple shortcode.","assets_banners_color":"0f191b","last_updated":"2026-04-30 10:20:28","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/profiles.wordpress.org\/devshakil\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":40,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"devshakil","date":"2026-04-30 10:20:28"}},"upgrade_notice":{"1.0.1":"<p>First public release \u2014 adds proper versioning, i18n, and WordPress.org compliance.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3519407,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3519407,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3519407,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3519407,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The reader rendered inside a WordPress page via the <code>[egf_reader]<\/code> shortcode.","2":"Built-in \"About the game\" modal showing game metadata.","3":"Settings modal \u2014 volume, theme, and language controls."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[261527,230,533,451,80],"plugin_category":[37,43,56],"plugin_contributors":[204885],"plugin_business_model":[],"class_list":["post-299501","plugin","type-plugin","status-publish","hentry","plugin_tags-egf","plugin_tags-embed","plugin_tags-game","plugin_tags-interactive","plugin_tags-shortcode","plugin_category-arts-and-entertainment","plugin_category-customization","plugin_category-social-and-sharing","plugin_contributors-devshakil","plugin_committers-devshakil","plugin_committers-shakvaro"],"banners":{"banner":"https:\/\/ps.w.org\/shakvaro-egf-reader-shortcode\/assets\/banner-772x250.png?rev=3519407","banner_2x":"https:\/\/ps.w.org\/shakvaro-egf-reader-shortcode\/assets\/banner-1544x500.png?rev=3519407","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/shakvaro-egf-reader-shortcode\/assets\/icon-128x128.png?rev=3519407","icon_2x":"https:\/\/ps.w.org\/shakvaro-egf-reader-shortcode\/assets\/icon-256x256.png?rev=3519407","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Shakvaro EGF Reader Shortcode<\/strong> lets you embed an EGF 1.1 interactive game player directly inside any WordPress post or page using a simple shortcode. Upload your <code>.egf<\/code> file to the Media Library, copy its URL, and drop the shortcode \u2014 the reader renders in-place with built-in pause, score, about, and settings panels.<\/p>\n\n<p>The reader is fully client-side: once rendered it loads the <code>.egf<\/code> package, unpacks it, and plays the game without making any third-party calls.<\/p>\n\n<p>This plugin is not affiliated with, endorsed by, or sponsored by the authors of the EGF (Educational Game Format) specification or egf-format.org. \"EGF\" refers to the open file format the reader supports.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Simple <code>[egf_reader]<\/code> shortcode \u2014 no block editor required.<\/li>\n<li>Allows uploading <code>.egf<\/code> files to the WordPress Media Library.<\/li>\n<li>Built-in player UI: pause, score tracking, about-the-game, and audio\/theme settings.<\/li>\n<li>Interface available in 9 languages (English, French, Spanish, Portuguese, Chinese, Arabic, Hindi, Urdu, Russian) with automatic browser-language detection.<\/li>\n<li>Light and dark themes.<\/li>\n<li>Works on any theme \u2014 the reader is self-contained and style-scoped.<\/li>\n<\/ul>\n\n<h4>Shortcode parameters<\/h4>\n\n<ul>\n<li><code>game<\/code> <em>(required)<\/em> \u2014 URL of the <code>.egf<\/code> game file to load.<\/li>\n<li><code>lang<\/code> <em>(optional, default: <code>auto<\/code>)<\/em> \u2014 interface language. Use <code>auto<\/code> to pick the best language from the visitor's browser, or force one: <code>en<\/code>, <code>fr<\/code>, <code>es<\/code>, <code>pt<\/code>, <code>zh<\/code>, <code>ar<\/code>, <code>hi<\/code>, <code>ur<\/code>, <code>ru<\/code>.<\/li>\n<li><code>theme<\/code> <em>(optional, default: <code>light<\/code>)<\/em> \u2014 <code>light<\/code> or <code>dark<\/code>.<\/li>\n<li><code>nocache<\/code> <em>(optional, default: <code>1<\/code>)<\/em> \u2014 set to <code>0<\/code> to allow the browser to cache the <code>.egf<\/code> package.<\/li>\n<\/ul>\n\n<h4>Example<\/h4>\n\n<pre><code>[egf_reader game=\"https:\/\/your-site.com\/wp-content\/uploads\/2025\/04\/my-game.egf\" lang=\"auto\" theme=\"light\"]\n<\/code><\/pre>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>shakvaro-egf-reader-shortcode<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the WordPress Plugins screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Upload an <code>.egf<\/code> file to your <strong>Media Library<\/strong> and copy its URL.<\/li>\n<li>Insert the shortcode into any post or page:\n[egf_reader game=\"https:\/\/your-site.com\/wp-content\/uploads\/game.egf\"]<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20an%20egf%20file%3F\"><h3>What is an EGF file?<\/h3><\/dt>\n<dd><p>EGF (Educational Game Format) 1.1 is an open package format for interactive games. An <code>.egf<\/code> file is a zipped bundle containing the game's scenes, assets, and metadata.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20data%20to%20any%20external%20service%3F\"><h3>Does the plugin send data to any external service?<\/h3><\/dt>\n<dd><p>No. The reader runs entirely in the visitor's browser and loads the <code>.egf<\/code> file from your own server (or wherever you host it). No analytics, tracking, or third-party requests are made by the plugin.<\/p><\/dd>\n<dt id=\"the%20shortcode%20shows%20%22missing%20game%20attribute%22%20%E2%80%94%20why%3F\"><h3>The shortcode shows \"missing game attribute\" \u2014 why?<\/h3><\/dt>\n<dd><p>The <code>game<\/code> attribute is required and must point to the URL of your <code>.egf<\/code> file. Example:\n    [egf_reader game=\"https:\/\/your-site.com\/wp-content\/uploads\/game.egf\"]<\/p><\/dd>\n<dt id=\"wordpress%20won%27t%20let%20me%20upload%20my%20.egf%20file.\"><h3>WordPress won't let me upload my .egf file.<\/h3><\/dt>\n<dd><p>Activating the plugin whitelists the <code>.egf<\/code> extension in the Media Library. If you still see a \"Sorry, this file type is not permitted for security reasons\" error, your host may have additional restrictions \u2014 check with your hosting provider.<\/p><\/dd>\n<dt id=\"can%20i%20embed%20more%20than%20one%20game%20on%20the%20same%20page%3F\"><h3>Can I embed more than one game on the same page?<\/h3><\/dt>\n<dd><p>Yes. Each shortcode instance gets its own unique container and player state.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>First public release on WordPress.org.<\/li>\n<li>Renamed plugin to \"Shakvaro EGF Reader Shortcode\" to clarify no affiliation with the EGF project.<\/li>\n<li>Replaced <code>time()<\/code>-based asset cache-busting with a proper plugin version constant.<\/li>\n<li>Added full plugin header (License, Text Domain, Requires PHP, Requires at least, Tested up to).<\/li>\n<li>Added text domain and made all user-facing strings translatable.<\/li>\n<li>Refactored template output to escape every dynamic value at the point of echo.<\/li>\n<\/ul>","raw_excerpt":"Embed and play EGF 1.1 interactive games inside WordPress posts or pages with a simple shortcode.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/299501","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=299501"}],"author":[{"embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/devshakil"}],"wp:attachment":[{"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=299501"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=299501"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=299501"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=299501"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=299501"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=299501"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}