=== ImageMenu === Contributors: timhodson Donate link: http://timhodson.com/imagemenu Tags: image, menu, Requires at least: 5.0 Tested up to: 6.7 Stable tag: 0.4 Requires PHP: 7.4 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Create a menu using the featured image of a page. == Description == imagemenu, creates an image menu with the pages specified in the shortcode or template_tag And of course, if you find this plugin useful (especially if it gets you out of a fix in a commercial setting), please feel free to leave feedback via the donate button on the plugin homepage. (I am grateful for those people who have already bought me a beer :) ) == Installation == How to install the plugin and get it working. = Briefly: = 1. Upload the `imagemenu` directory to the `/wp-content/plugins/` directory (or install via wordpress plugins admin menu) 1. Activate the plugin through the 'Plugins' menu in WordPress = How it works: = On the page that contains the shortcode, a menu will be displayed showing each of the featured images of the selected pages. = Tips = == Frequently Asked Questions == = Can I ask you a question? = Yes, and I will even try to answer your question! If you are atempting to contact me with Skype Chat, I only accept contact resquests if it is obvious you are asking about this plugin. So don't be offended if it seems I ignore you. Try an email instead :) . [Tim Hodson](https://timhodson.com "Find me...") == Changelog == = 0.4 = * Added: Gutenberg block with page selector, thumbnail size control, and live preview. * Added: Full-width layout option using WordPress alignfull support. * Improved: Extracted inline CSS into enqueued stylesheet (css/imagemenu.css). * Improved: Replaced inline JavaScript with enqueued script using event delegation (js/imagemenu.js). * Improved: Modern flexbox layout — images auto-scale to fill a single row. * Improved: Title labels now overlay the bottom of each image. * Improved: CSS and JS only loaded on pages that use the shortcode or block. * Improved: User-customised CSS applied via wp_add_inline_style() instead of inline style tags. * Fixed: Shortcode now returns output instead of echoing (fixes block rendering and placement). * Fixed: add_options_page() call passing invalid icon parameter. = 0.3 = * Fixed: Added GPL license declarations to plugin header and readme. * Fixed: Replaced deprecated split() with explode(). * Fixed: Updated load_plugin_textdomain() to use non-deprecated signature. * Fixed: Removed pre-2.6 WordPress compatibility defines that changed global behaviour. * Fixed: Use plugin_dir_path() and plugin_dir_url() for file references. * Fixed: Added sanitize_callback to all register_setting() calls. * Fixed: Escaped all output variables and options (esc_html, esc_attr, esc_textarea, wp_kses). * Fixed: Replaced _e() with esc_attr_e() and __() with esc_html__() where needed. * Fixed: Added direct file access prevention to all PHP files. * Updated: Tested up to WordPress 6.7. = 0.2 = * Added: jQuery to fade labels in and out. = 0.1 = * beta release