{"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-07-27T11:53:36","modified_gmt":"2026-07-27T11:53:36","slug":"lexiata-xslider","status":"publish","type":"plugin","link":"https:\/\/ms.wordpress.org\/plugins\/lexiata-xslider\/","author":23086176,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.1","stable_tag":"1.5.1","tested":"7.0.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-07-27 11:53: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":300,"downloads":2383,"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"},"1.5.0":{"tag":"1.5.0","author":"mrsureshlk","date":"2026-07-27 10:54:13"},"1.5.1":{"tag":"1.5.1","author":"mrsureshlk","date":"2026-07-27 11:53:36"}},"upgrade_notice":{"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.2.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"],"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: under 200KB on disk, with a frontend payload around 8KB (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 slide and fade animations<\/li>\n<li>Autoplay, drag, keyboard navigation<\/li>\n<li>Arrows + bullets, fully customisable<\/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<\/li>\n<li><strong>Duplicate slide<\/strong> 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>Fully accessible<\/strong> \u2014 keyboard navigation, ARIA roles, focus rings<\/li>\n<li><strong>Mobile, tablet, desktop<\/strong> arrow visibility controls<\/li>\n<li><strong>No external dependencies<\/strong> \u2014 pure vanilla JS frontend (~5KB)<\/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.<\/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=\"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=\"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.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:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/316770","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=316770"}],"author":[{"embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mrsureshlk"}],"wp:attachment":[{"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=316770"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=316770"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=316770"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=316770"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=316770"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ms.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=316770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}