{"id":316770,"date":"2026-06-28T07:37:50","date_gmt":"2026-06-28T07:37:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/lexiata-xslider\/"},"modified":"2026-09-27T05:37:36","modified_gmt":"2026-09-27T05:37:36","slug":"lexiata-xslider","status":"publish","type":"plugin","link":"https:\/\/ta-lk.wordpress.org\/plugins\/lexiata-xslider\/","author":23086176,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.6.0","stable_tag":"1.6.0","tested":"7.1.2","requires":"5.5","requires_php":"7.2","requires_plugins":null,"header_name":"Lexiata XSlider","header_author":"Suresh L. Bamunusinghe","header_description":"A lightweight, fast, and easy-to-use slider plugin for WordPress. Build responsive image sliders with clickable links \u2014 no bloat, no third-party dependencies.","assets_banners_color":"010e29","last_updated":"2026-09-27 05:37:36","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/lexiata.lk","rating":0,"author_block_rating":0,"active_installs":600,"downloads":3352,"num_ratings":0,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"mrsureshlk","date":"2026-06-28 08:10:38","revision":3588581},"1.5.0":{"tag":"1.5.0","author":"mrsureshlk","date":"2026-07-27 10:54:13","revision":3624406},"1.5.1":{"tag":"1.5.1","author":"mrsureshlk","date":"2026-07-27 11:53:36","revision":3624502},"1.6.0":{"tag":"1.6.0","author":"mrsureshlk","date":"2026-09-27 05:37:36","revision":3715023}},"upgrade_notice":{"1.6.0":"<p>WordPress 7.1 compatibility plus many fixes: the block is selectable again, slide reordering works, RTL and keyboard fixes, responsive images. Your existing sliders and settings are kept.<\/p>","1.5.1":"<p>Adds a Gutenberg block and Elementor widget, a bug-report tool, and important editor\/autoplay\/drag fixes, plus WordPress 7.0 compatibility. Recommended for all users.<\/p>","1.0.0":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3588566,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3588566,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3588566,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3588566,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"lexiata\/xslider":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"lexiata\/xslider","version":"1.6.0","title":"Lexiata XSlider","category":"media","icon":"images-alt2","description":"Insert a slider you built with Lexiata XSlider.","keywords":["slider","carousel","image slider","lexiata"],"textdomain":"lexiata-xslider","attributes":{"id":{"type":"number","default":0}},"supports":{"html":false,"align":["wide","full"],"customClassName":false},"editorScript":"lex-xslider-block","editorStyle":"file:.\/editor.css"}},"tagged_versions":["1.0.0","1.5.0","1.5.1","1.6.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard \u2014 list of slider projects with quick actions.","2":"Slide editor \u2014 image picker, click-through URL, background colour, visibility.","3":"Settings tabs \u2014 General, Size, Controls, Animations, Autoplay, Optimize, Slides, Developer.","4":"Frontend \u2014 lightweight, accessible, responsive output."}},"plugin_section":[],"plugin_tags":[786,2141,4035,1483,611],"plugin_category":[50],"plugin_contributors":[250405],"plugin_business_model":[],"class_list":["post-316770","plugin","type-plugin","status-publish","hentry","plugin_tags-carousel","plugin_tags-image-slider","plugin_tags-lightweight","plugin_tags-responsive-slider","plugin_tags-slider","plugin_category-media","plugin_contributors-mrsureshlk","plugin_committers-mrsureshlk"],"banners":{"banner":"https:\/\/ps.w.org\/lexiata-xslider\/assets\/banner-772x250.png?rev=3588566","banner_2x":"https:\/\/ps.w.org\/lexiata-xslider\/assets\/banner-1544x500.png?rev=3588566","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/lexiata-xslider\/assets\/icon-128x128.png?rev=3588566","icon_2x":"https:\/\/ps.w.org\/lexiata-xslider\/assets\/icon-256x256.png?rev=3588566","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Lexiata XSlider<\/strong> is a tiny, blazing-fast image slider plugin built from scratch. Total footprint: about 300KB on disk, with a front-end payload of about 6KB gzipped (CSS + JS combined). No bundled libraries, no jQuery on the front-end, no third-party services.<\/p>\n\n<p><strong>Why XSlider?<\/strong><\/p>\n\n<p>Most slider plugins ship with hundreds of templates, layer animations, and features you will never use \u2014 and your visitors pay for every kilobyte. XSlider keeps only what you need:<\/p>\n\n<ul>\n<li>Clean image sliders with optional click-through URLs<\/li>\n<li>Horizontal, vertical, fade and zoom-fade animations<\/li>\n<li>Autoplay, swipe\/drag, keyboard navigation<\/li>\n<li>Arrows + bullets, fully customisable<\/li>\n<li>Responsive images (srcset) \u2014 phones download phone-sized files<\/li>\n<li>SEO-friendly markup with proper alt text and ARIA roles<\/li>\n<li>Lazy initialisation (the slider boots only when scrolled into view)<\/li>\n<li>Style via CSS classes + the WordPress Customizer (Additional CSS)<\/li>\n<li>Native Gutenberg block, Elementor widget, shortcode, and PHP function \u2014 insert a slider in any editor or builder<\/li>\n<\/ul>\n\n<p><strong>Built for WordPress agencies and freelancers<\/strong> by Suresh L. Bamunusinghe at <a href=\"https:\/\/lexiata.lk\">Lexiata.lk<\/a> \u2014 battle-tested in production sites.<\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li><strong>Up to 8 settings tabs<\/strong> \u2014 General, Size, Controls, Animations, Autoplay, Optimize, Slides, Developer<\/li>\n<li><strong>Image and Blank slides<\/strong> \u2014 Blank slides support a custom background colour<\/li>\n<li><strong>Clickable URL per slide<\/strong> \u2014 Set link, choose target tab, optional <code>nofollow<\/code><\/li>\n<li><strong>Drag-to-reorder<\/strong> slides in the editor (mouse, touch or keyboard)<\/li>\n<li><strong>Duplicate<\/strong> a slide or a whole slider with one click<\/li>\n<li><strong>Live preview<\/strong> in the slide editor<\/li>\n<li><strong>Click-to-copy<\/strong> shortcode and PHP code<\/li>\n<li><strong>Accessible<\/strong> \u2014 keyboard navigation, ARIA roles, focus rings, pauses for keyboard users and reduced-motion visitors<\/li>\n<li><strong>Mobile, tablet, desktop<\/strong> arrow visibility controls<\/li>\n<li><strong>RTL-ready<\/strong> \u2014 works on right-to-left sites<\/li>\n<li><strong>No external dependencies<\/strong> \u2014 pure vanilla JS front-end (~4KB gzipped)<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>lexiata-xslider<\/code> folder to <code>\/wp-content\/plugins\/<\/code> (or install directly via WordPress' Plugins screen).<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Click the new <strong>XSlider<\/strong> menu item in your admin sidebar.<\/li>\n<li>Click <strong>New project<\/strong>, configure name\/width\/height, and click <strong>Create project<\/strong>.<\/li>\n<li>Click <strong>ADD SLIDE<\/strong>, choose <strong>Image<\/strong> or <strong>Blank<\/strong>, configure the slide, and save.<\/li>\n<li>Copy the shortcode (e.g. <code>[lex_xslider id=\"42\"]<\/code>) and paste it into any post, page, or builder \u2014 or use the <strong>Lexiata XSlider<\/strong> block \/ Elementor widget.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20add%20a%20click-through%20url%20to%20a%20slide%3F\"><h3>How do I add a click-through URL to a slide?<\/h3><\/dt>\n<dd><p>Open the slide editor, scroll to the <strong>Click action<\/strong> section, paste the URL, choose whether it opens in the same tab or a new tab, and toggle <code>nofollow<\/code> if needed.<\/p><\/dd>\n<dt id=\"where%20do%20i%20paste%20the%20shortcode%3F\"><h3>Where do I paste the shortcode?<\/h3><\/dt>\n<dd><p>Anywhere shortcodes work: Gutenberg shortcode block, Classic Editor, Divi text module, theme template files (use the PHP snippet from the General tab), etc. You can also skip the shortcode entirely and use the built-in <strong>Lexiata XSlider<\/strong> Gutenberg block or Elementor widget \u2014 both let you pick the slider from a dropdown.<\/p><\/dd>\n<dt id=\"can%20i%20embed%20a%20slider%20by%20name%20instead%20of%20its%20id%3F\"><h3>Can I embed a slider by name instead of its ID?<\/h3><\/dt>\n<dd><p>Yes. Give the slider an <strong>Alias<\/strong> on its General tab (for example <code>hero-slider<\/code>), then use <code>[lex_xslider alias=\"hero-slider\"]<\/code>. Handy when you rebuild a slider on another site and want existing shortcodes to keep working.<\/p><\/dd>\n<dt id=\"will%20updating%20the%20plugin%20change%20my%20existing%20sliders%3F\"><h3>Will updating the plugin change my existing sliders?<\/h3><\/dt>\n<dd><p>No. Updates keep your saved sliders, slides and settings exactly as they are.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20translation-ready%3F\"><h3>Is the plugin translation-ready?<\/h3><\/dt>\n<dd><p>Yes. All strings use the <code>lexiata-xslider<\/code> text domain. Place <code>.mo<\/code> \/ <code>.po<\/code> files in <code>wp-content\/languages\/plugins\/<\/code> or under the plugin's <code>languages\/<\/code> folder.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20store%20data%20outside%20the%20wordpress%20database%3F\"><h3>Does the plugin store data outside the WordPress database?<\/h3><\/dt>\n<dd><p>No. Slider projects are stored as a custom post type, and slides + settings are stored in <code>wp_postmeta<\/code>. No external requests, no analytics, no tracking.<\/p><\/dd>\n<dt id=\"how%20can%20i%20customise%20the%20slider%20visually%3F\"><h3>How can I customise the slider visually?<\/h3><\/dt>\n<dd><p>Open the slider's <strong>Developer<\/strong> tab and add space-separated classes to the wrapper in <strong>Slider CSS classes<\/strong>. Then style those classes from <strong>Appearance \u2192 Customize \u2192 Additional CSS<\/strong> \u2014 WordPress' built-in tool for custom CSS.<\/p><\/dd>\n<dt id=\"where%20is%20the%20unminified%20front-end%20code%3F\"><h3>Where is the unminified front-end code?<\/h3><\/dt>\n<dd><p>The front-end files in <code>assets\/frontend\/<\/code> are minified for speed. The readable sources are in <code>assets\/frontend\/src\/<\/code> \u2014 set <code>SCRIPT_DEBUG<\/code> to <code>true<\/code> in <code>wp-config.php<\/code> to load them instead.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20plugins%3F\"><h3>Does it work with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. Frontend assets are static files with cache-friendly versioning, and the slider markup is fully server-rendered.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Compatibility: tested with WordPress 7.1 (always-iframed block editor, 40px admin controls, jQuery UI 1.14).<\/li>\n<li>Fixed: the Gutenberg block could not be selected in the editor (no toolbar or settings sidebar). Wide\/Full alignment now also works on the front-end.<\/li>\n<li>Fixed: slides could not be reordered by dragging the grip handle. Reordering now works with mouse, touch and keyboard (Alt + \u2190 \/ \u2192).<\/li>\n<li>Fixed: horizontal sliders showed an empty slide on right-to-left (RTL) sites.<\/li>\n<li>Fixed: keyboard arrows no longer block page scrolling, typing in form fields or the browser's Back shortcut, and only the hovered or focused slider reacts.<\/li>\n<li>Fixed: on phones, scrolling the page over a slider no longer stops autoplay for good.<\/li>\n<li>Fixed: unticking \"Hide on\" devices for arrows is now saved.<\/li>\n<li>Fixed: after using arrows, bullets, keys or swipe, autoplay waits a full slide duration before moving on.<\/li>\n<li>Fixed: lazy sliders taller than the screen never started; a lazy threshold of 0% now works.<\/li>\n<li>Fixed: a right-click could leave the slider stuck in drag mode; a keyboard \"click\" on a slide link right after a swipe was ignored.<\/li>\n<li>Fixed: settings dropdowns had no arrow and fields were misaligned on WordPress 7.x; duplicated slides now appear next to the original.<\/li>\n<li>Improved: responsive images (srcset\/sizes) for Media Library images; the Media Library alt text is used when a slide's alt text is empty.<\/li>\n<li>Improved: the next and previous images are preloaded (no blank slide mid-transition); autoplay pauses while the slider is off-screen or focused by a keyboard user.<\/li>\n<li>Improved: accessibility \u2014 hidden slides are skipped by screen readers and the Tab key, labelled form fields, keyboard access to slides, tabs and copy buttons, focus kept inside dialogs.<\/li>\n<li>Improved: performance \u2014 minified front-end files (about 6KB gzipped in total), the slider list for the block editor is no longer queried on every page load, no page-wide touch listeners.<\/li>\n<li>New: embed a slider by alias \u2014 <code>[lex_xslider alias=\"hero-slider\"]<\/code>.<\/li>\n<li>New: duplicate a whole slider and copy its shortcode right from the dashboard.<\/li>\n<li>New: colour pickers for arrow and bullet colours; \"Edit this slider\" link in the block settings.<\/li>\n<li>Removed: the \"Force full width\" and \"Limit slide width\" toggles, which never affected the slider. Saved settings are kept.<\/li>\n<li>Security: hardened request handling and output escaping; admin notices are now per user.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Fixed: a packaging issue in 1.5.0 that prevented the Gutenberg block and Elementor widget from loading. Both now work as intended.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>New: <strong>Gutenberg block<\/strong> \u2014 pick a slider from a dropdown, with an in-editor preview. The shortcode keeps working everywhere.<\/li>\n<li>New: <strong>Elementor widget<\/strong> \u2014 drop a slider into any Elementor layout with a live preview.<\/li>\n<li>New: a <strong>\"Report a bug\"<\/strong> tool in the admin header (opens a pre-filled email with environment info).<\/li>\n<li>Improved: the settings editor now saves the whole slider from a single screen \u2014 no more lost changes when switching tabs, and no more misleading \"unsaved changes\" prompts.<\/li>\n<li>Fixed: autoplay no longer stops permanently after a single click, and respects the configured delay.<\/li>\n<li>Fixed: dragging past the first or last slide no longer exposes an empty area behind the slider.<\/li>\n<li>Fixed: drag\/swipe listeners are cleaned up correctly when a slider is removed (single-page apps \/ page-builder previews).<\/li>\n<li>Fixed: border-radius preset labels are now legible; the \"New project\" dialog no longer closes on an accidental background click.<\/li>\n<li>Compatibility: WordPress 7.0 block editor; asset cache-busting so updates always reach the browser.<\/li>\n<li>Housekeeping: documentation accuracy and internal cleanup.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>Custom Post Type for slider projects with private admin-only visibility.<\/li>\n<li>8-tab settings editor: General, Size, Controls, Animations, Autoplay, Optimize, Slides, Developer.<\/li>\n<li>4 slide animations: Horizontal, Vertical, Fade, Zoom fade.<\/li>\n<li>4 arrow styles: Default, Circle, Square, Minimal \u2014 with adjustable size, colour, and per-device visibility.<\/li>\n<li>4 bullet styles: Dot, Bar, Pill, Square.<\/li>\n<li>Border-radius control (0\u2013100px) with 5 presets \u2014 Sharp, Subtle, Soft, Rounded, Pill.<\/li>\n<li>Image and Blank slide types with click-through URLs (target tab + nofollow support).<\/li>\n<li>Touch swipe and mouse drag navigation that works across all animation types.<\/li>\n<li>Keyboard arrow navigation (activates on hover, focus, or viewport visibility).<\/li>\n<li>Drag-to-reorder slides in the admin editor with mobile touch support.<\/li>\n<li>Duplicate slide, delete slide, live preview.<\/li>\n<li>Vanilla JS frontend engine \u2014 no jQuery dependency, ~5KB minified.<\/li>\n<li>Lazy initialisation with IntersectionObserver \u2014 slider boots only when scrolled into view.<\/li>\n<li>First-slide LCP optimisation via <code>fetchpriority=\"high\"<\/code>.<\/li>\n<li>Multisite-aware uninstall \u2014 cleans up all sites' data on plugin deletion.<\/li>\n<li>Accessibility: ARIA roles, focus-visible outlines, <code>prefers-reduced-motion<\/code> support.<\/li>\n<li>Translation-ready \u2014 all strings use the <code>lexiata-xslider<\/code> text domain.<\/li>\n<li>Shortcode <code>[lex_xslider id=\"X\"]<\/code> works in any builder (Gutenberg, Elementor, Divi, Classic Editor, theme templates).<\/li>\n<\/ul>","raw_excerpt":"Lightweight, fast image slider for WordPress. Responsive sliders with clickable links \u2014 no bloat, no third-party dependencies.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/316770","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=316770"}],"author":[{"embeddable":true,"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mrsureshlk"}],"wp:attachment":[{"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=316770"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=316770"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=316770"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=316770"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=316770"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ta-lk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=316770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}