{"id":305172,"date":"2026-06-02T13:03:18","date_gmt":"2026-06-02T13:03:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ruby-mega-menu\/"},"modified":"2026-06-02T13:06:28","modified_gmt":"2026-06-02T13:06:28","slug":"ruby-mega-menu","status":"publish","type":"plugin","link":"https:\/\/ja.wordpress.org\/plugins\/ruby-mega-menu\/","author":23488288,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.8","stable_tag":"1.0.8","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Ruby Mega Menu","header_author":"ismailonur","header_description":"A powerful mega menu plugin replacing the default WordPress navigation. Supports Classic Dropdown, Classic Mega Menu, and Vertical Content Tabs.","assets_banners_color":"9d9b99","last_updated":"2026-06-02 13:06:28","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/rubymegamenu.com","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.8":{"tag":"1.0.8","author":"ismailonur","date":"2026-06-02 13:06:28"}},"upgrade_notice":{"1.0.5":"<p>Shortcode renamed to [rubymm_rubymenu]. Update existing pages that use [ruby_menu] before upgrading.<\/p>","1.0.4":"<p>Mobile layout fixes for cascade order and right-aligned menu sub-levels.<\/p>","1.0.3":"<p>Compliance improvements required for WordPress.org.<\/p>","1.0.2":"<p>Compliance and security improvements required for WordPress.org.<\/p>","1.0.1":"<p>Security and compliance fixes. Recommended for all users.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3558073,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3558073,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3558073,"resolution":"772x250","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.8"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3558073,"resolution":"1","location":"assets","locale":"","width":1280,"height":960},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3558073,"resolution":"2","location":"assets","locale":"","width":1280,"height":960},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3558073,"resolution":"3","location":"assets","locale":"","width":1280,"height":960},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3558073,"resolution":"4","location":"assets","locale":"","width":1280,"height":960},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3558073,"resolution":"5","location":"assets","locale":"","width":1280,"height":960}},"screenshots":{"1":"Classic Dropdown menu with nested sub-levels","2":"Classic Mega Menu with multi-column layout","3":"Content Tabs (Vertical) \u2014 auto-pulls blog posts","4":"Another Classic Mega Menu with multi-column layout","5":"Right aligned Menu Items"}},"plugin_section":[],"plugin_tags":[1863,6276,1865,138806,1753],"plugin_category":[43],"plugin_contributors":[265466],"plugin_business_model":[],"class_list":["post-305172","plugin","type-plugin","status-publish","hentry","plugin_tags-dropdown","plugin_tags-mega-menu","plugin_tags-menu","plugin_tags-menu-builder","plugin_tags-navigation","plugin_category-customization","plugin_contributors-ismailonur","plugin_committers-ismailonur"],"banners":{"banner":"https:\/\/ps.w.org\/ruby-mega-menu\/assets\/banner-772x250.png?rev=3558073","banner_2x":"https:\/\/ps.w.org\/ruby-mega-menu\/assets\/banner-1544x500.png?rev=3558073","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ruby-mega-menu\/assets\/icon-256x256.png?rev=3558073","icon_2x":"https:\/\/ps.w.org\/ruby-mega-menu\/assets\/icon-256x256.png?rev=3558073","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ruby-mega-menu\/assets\/screenshot-1.png?rev=3558073","caption":"Classic Dropdown menu with nested sub-levels"},{"src":"https:\/\/ps.w.org\/ruby-mega-menu\/assets\/screenshot-2.png?rev=3558073","caption":"Classic Mega Menu with multi-column layout"},{"src":"https:\/\/ps.w.org\/ruby-mega-menu\/assets\/screenshot-3.png?rev=3558073","caption":"Content Tabs (Vertical) \u2014 auto-pulls blog posts"},{"src":"https:\/\/ps.w.org\/ruby-mega-menu\/assets\/screenshot-4.png?rev=3558073","caption":"Another Classic Mega Menu with multi-column layout"},{"src":"https:\/\/ps.w.org\/ruby-mega-menu\/assets\/screenshot-5.png?rev=3558073","caption":"Right aligned Menu Items"}],"raw_content":"<!--section=description-->\n<p>Ruby Mega Menu replaces your default navigation with a fully-featured menu builder \u2014 no page builder required, no CSS hacks.<\/p>\n\n<p>Build three types of menus side-by-side in the same menu bar:<\/p>\n\n<ul>\n<li><strong>Classic Dropdown<\/strong> \u2014 Up to 3 nested sub-levels with icons, link targets, and custom URLs.<\/li>\n<li><strong>Classic Mega Menu<\/strong> \u2014 Multi-column layouts with lists, images, image-link cards, and image+list combinations.<\/li>\n<li><strong>Content Tabs (Vertical)<\/strong> \u2014 Auto-pulls your latest blog posts by category into a tabbed reading experience.<\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Drag-and-drop menu builder in the WordPress admin<\/li>\n<li>5 mega menu column types (normal list, list with images, multiple lists, image link, image + list)<\/li>\n<li>4 blog layouts for the vertical tabs menu (4-col grid, 3-col grid, 2-col grid, flat list)<\/li>\n<li>300+ Font Awesome icons<\/li>\n<li>Full typography control \u2014 Google Fonts, size, weight per menu region<\/li>\n<li>Full color customization \u2014 every element has its own color picker<\/li>\n<li>Responsive design \u2014 mobile hamburger menu with slide-in navigation<\/li>\n<li>Content separators, dividers, right-aligned menu items<\/li>\n<li>Header mode with custom height, background color, or image<\/li>\n<li>FSE theme support via <code>[rubymm_rubymenu]<\/code> shortcode<\/li>\n<li>Replace the theme's default navigation in specific menu locations or globally<\/li>\n<li>Compatible with popular themes (Avada, The7, Astra, GeneratePress, and most others)<\/li>\n<\/ul>\n\n<h4>Documentation<\/h4>\n\n<p>Full documentation available at <a href=\"https:\/\/docs.rubymegamenu.com\">docs.rubymegamenu.com<\/a>.\nFull video tutorial available at <a href=\"https:\/\/www.youtube.com\/watch?v=pUeCFkERRbo\">Youtube<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>ruby-mega-menu<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install via the WordPress plugin directory.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Go to <strong>Ruby Mega Menu<\/strong> in the admin sidebar to start building.<\/li>\n<li>Add the <code>[rubymm_rubymenu]<\/code> shortcode to a page or template, OR enable automatic theme replacement in Settings.<\/li>\n<\/ol>\n\n<p>For detailed setup instructions, visit <a href=\"https:\/\/docs.rubymegamenu.com\/installation\/\">docs.rubymegamenu.com\/installation\/<\/a>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20my%20theme%3F\"><h3>Does it work with my theme?<\/h3><\/dt>\n<dd><p>Ruby Mega Menu works with most WordPress themes, including FSE (Full Site Editing) themes. For FSE themes, use the <code>[rubymm_rubymenu]<\/code> shortcode inside a Custom HTML block. For classic themes, the plugin can automatically replace your theme's navigation in specific menu locations.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20builders%3F\"><h3>Does it work with page builders?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>[rubymm_rubymenu]<\/code> shortcode in any page builder (Elementor, Divi, Beaver Builder, etc.) that supports shortcodes.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20site%3F\"><h3>Does it slow down my site?<\/h3><\/dt>\n<dd><p>No. The plugin loads a single CSS file and a small JavaScript file, both cached by the browser. Menu data is cached in memory via WordPress object cache.<\/p><\/dd>\n<dt id=\"can%20i%20translate%20it%3F\"><h3>Can I translate it?<\/h3><\/dt>\n<dd><p>Yes. The plugin is translation-ready via the <code>ruby-mega-menu<\/code> text domain.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20collect%20any%20data%3F\"><h3>Does the plugin collect any data?<\/h3><\/dt>\n<dd><p>No. Ruby Mega Menu does not collect any data from your site, your admin users, or your visitors. All menu data is stored in your own WordPress database.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20load%20any%20external%20resources%3F\"><h3>Does the plugin load any external resources?<\/h3><\/dt>\n<dd><p>The plugin loads Google Fonts from Google's CDN only if you enable custom fonts in the typography settings. If you prefer not to load from Google, select \"System Default\" in the font settings. No other external resources are loaded on the front end of your site.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20support%3F\"><h3>Where can I get support?<\/h3><\/dt>\n<dd><p>Please open a topic in the WordPress.org support forum.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Security: introduced esc_inline_css() helper that applies wp_strip_all_tags(), wp_kses_no_null(), str_ireplace('&lt;\/style'), and blocks @import, expression(), javascript:\/data: URLs and IE behavior\/binding properties before any CSS is passed to wp_add_inline_style().<\/li>\n<li>Security: introduced esc_css_selector_list() helper that sanitizes each CSS selector via preg_replace and wp_strip_all_tags() before output.<\/li>\n<li>Security: both wp_add_inline_style() call-sites (dynamic CSS and hide-theme-nav CSS) now route through these helpers immediately before output.<\/li>\n<\/ul>\n\n<p><h4>1.0.7<\/h4><\/p>\n\n<ul>\n<li>Security: all output values in view-settings.php now wrapped with esc_attr() at the point of echo (late escaping).<\/li>\n<li>Security: CSS inline style output now uses wp_strip_all_tags() + str_ireplace('&lt;\/style') as a two-step sanitization before wp_add_inline_style().<\/li>\n<li>Security: CSS selector regex tightened to exclude quote characters (\", ') that are not valid in safe selectors.<\/li>\n<li>Security: font-family regex simplified to alphanumeric, space and hyphen only \u2014 sufficient for all Google Font names.<\/li>\n<li>Fix: PHP syntax error in font-family preg_replace (misquoted regex) resolved.<\/li>\n<\/ul>\n\n<p><h4>1.0.6<\/h4><\/p>\n\n<ul>\n<li>Security: added explicit format arrays (%d\/%s) to all $wpdb-&gt;insert, $wpdb-&gt;update, and $wpdb-&gt;delete calls for proper SQL type safety.<\/li>\n<li>Security: added $wpdb-&gt;prepare() to get_top_level_items() query for consistency with WordPress coding standards.<\/li>\n<li>Security: all dynamic CSS values now late-escaped at point of string building using esc_css_color() and esc_css_dimension() helpers.<\/li>\n<li>Security: added esc_html() to unescaped echo in view-builder.php.<\/li>\n<li>Fix: classic dropdown subdropdown positioning now correctly uses saved Dropdown Width setting (left\/right offset).<\/li>\n<li>Fix: blog-type mega menu nav items no longer inherit theme margin-bottom or line-height overrides.<\/li>\n<li>Fix: shop menu tab items no longer inherit theme font-weight or font-stretch overrides on desktop.<\/li>\n<li>Fix: admin bar offset fix (fixAdminBarOffset) now only applies margin-top on mobile breakpoint, preventing unwanted spacing on desktop.<\/li>\n<li>Fix: mobile teleport now skips #wpadminbar when applying margin-top to body first div, preventing admin bar from being pushed down.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Compliance: prefixed remaining AJAX action hooks (rmm_search_posts, rmm_get_post_link) with rubymm_.<\/li>\n<li>Changed: shortcode renamed from [ruby_menu] to [rubymm_rubymenu] for a more distinctive identifier.<\/li>\n<li>Fixed: delete confirmation popup was blank due to mismatched localization key (confirm_delete vs confirm_delete_top).<\/li>\n<li>Fixed: dynamic font CSS was outputting duplicate #ruby-mega-menu selector due to prefix already being present in font_targets() array.<\/li>\n<li>Fixed: Google Fonts loading used array_merge instead of array_replace_recursive, causing saved font settings to not properly override defaults.<\/li>\n<li>Fixed: font-family, font-size, and font-weight in dynamic CSS now use !important to prevent theme styles from overriding plugin typography settings.<\/li>\n<li>Added: active menu item support \u2014 top-level nav items now receive ruby-active-menu-item class when the user is on the corresponding page, using $wp-&gt;request for accurate URL matching in subdirectory installs. Filter is scoped to plugin-managed menus only.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Fixed: CSS cascade order \u2014 dynamic menu styles now load before responsive CSS so mobile layout rules take priority.<\/li>\n<li>Fixed: right-aligned top-level menu items \u2014 second-level submenu now stacks full-width on mobile instead of being pushed off-screen.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Compliance: fully removed Freemius SDK, premium license checks, and all premium feature placeholders from WordPress.org build.<\/li>\n<li>Compliance: ensured no locked features or license checks remain in the code, per WordPress.org Plugin Directory Guidelines.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Compliance: prefixed all global functions, classes, variables, hooks, and options for WordPress.org guidelines.<\/li>\n<li>Compliance: moved all inline styles and scripts to proper enqueue system (<code>wp_add_inline_style<\/code>, <code>wp_enqueue_script<\/code>).<\/li>\n<li>Security: added <code>wp_kses_post<\/code> final filter to all rendered menu HTML returned from shortcode and nav menu filter.<\/li>\n<li>Security: escaped all <code>get_the_date()<\/code> output in blog menu views.<\/li>\n<li>Removed premium feature placeholders (Pro badges, upsell links) for WordPress.org submission.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Security: hardened input sanitization across all admin and AJAX handlers.<\/li>\n<li>Security: added nonce verification to all AJAX endpoints.<\/li>\n<li>Security: escaped all dynamic output in CSS and admin views.<\/li>\n<li>Performance: added object-cache layer for menu queries.<\/li>\n<li>Compliance: passes WordPress.org Plugin Check.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Classic Dropdown menus with up to 3 sub-levels.<\/li>\n<li>Classic Mega Menu with 5 column types.<\/li>\n<li>Content Tabs (Vertical) with 4 blog layouts.<\/li>\n<li>Full typography, color, and responsive design controls.<\/li>\n<li>FSE theme support via <code>[rubymm_rubymenu]<\/code> shortcode.<\/li>\n<\/ul>","raw_excerpt":"A powerful mega menu builder replacing the default navigation with dropdowns, mega menus, and content tabs \u2014 no code required.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/305172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=305172"}],"author":[{"embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ismailonur"}],"wp:attachment":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=305172"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=305172"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=305172"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=305172"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=305172"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=305172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}