{"id":370103,"date":"2026-10-21T22:27:47","date_gmt":"2026-10-21T22:27:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/developersd-logo-slider\/"},"modified":"2026-10-21T22:12:26","modified_gmt":"2026-10-21T22:12:26","slug":"developersd-logo-slider","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/developersd-logo-slider\/","author":18675011,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.5","stable_tag":"trunk","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"DeveloperSD Logo Slider","header_author":"DeveloperSD","header_description":"Create responsive logo sliders with drag-and-drop management, flexible controls, shortcode output, and optional builder integrations.","assets_banners_color":"","last_updated":"2026-10-21 22:12:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/sudipdebnath-cloud.github.io\/wp-plugins.html","header_author_uri":"https:\/\/sudipdebnath-cloud.github.io","rating":0,"author_block_rating":0,"active_installs":0,"downloads":96,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[14164,76538,1871,10377,34968],"plugin_category":[],"plugin_contributors":[269280,269281],"plugin_business_model":[],"class_list":["post-370103","plugin","type-plugin","status-publish","hentry","plugin_tags-brands","plugin_tags-elementor","plugin_tags-logo-carousel","plugin_tags-logo-slider","plugin_tags-partners","plugin_contributors-developersd","plugin_contributors-sudipdebnath","plugin_committers-developersd"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/developersd-logo-slider.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>DeveloperSD Logo Slider is a logo\/brand carousel plugin built for professional client sites, powered by the battle-tested Slick Carousel engine (bundled locally - no CDN dependency).<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>Unlimited logo sliders, each with its own logos, order, and settings<\/li>\n<li>Drag-and-drop logo reordering in the admin<\/li>\n<li>Optional link, target, title, alt text, and custom class per logo<\/li>\n<li>Fully configurable responsive breakpoints (Desktop \/ Tablet \/ Mobile slide counts)<\/li>\n<li>Navigation arrows with selectable icons and icon sizing<\/li>\n<li>Per-device arrow and pagination-dot visibility (Desktop \/ Tablet \/ Mobile)<\/li>\n<li>Pagination dots, autoplay, infinite loop<\/li>\n<li>Touch swipe, mouse drag, and keyboard navigation<\/li>\n<li>Respects the visitor's \"prefers-reduced-motion\" setting<\/li>\n<li>Live, near-real-time preview while editing a slider<\/li>\n<li>Duplicate, export (JSON), and import sliders<\/li>\n<li>Shortcode output: <code>[developersd_logo_slider id=\"123\"]<\/code><\/li>\n<li>Optional Elementor widget and Divi module \u2014 the core plugin works perfectly without either<\/li>\n<li>Assets are only loaded on pages that actually use a slider<\/li>\n<li>Built to pass the WordPress Plugin Check tool cleanly<\/li>\n<\/ul>\n\n<h4>Shortcode<\/h4>\n\n<pre><code>[developersd_logo_slider id=\"123\"]\n<\/code><\/pre>\n\n<p>Optional attribute overrides:<\/p>\n\n<pre><code>[developersd_logo_slider id=\"123\" autoplay=\"false\" desktop=\"4\" tablet=\"2\" mobile=\"1\" nav=\"true\" dots=\"false\"]\n<\/code><\/pre>\n\n<h3>Developer Notes<\/h3>\n\n<p>See the in-admin <strong>Documentation \/ Help<\/strong> screen for the full list of actions and filters, including <code>developersd_logo_slider_before<\/code>, <code>developersd_logo_slider_after<\/code>, <code>developersd_logo_slider_args<\/code>, <code>developersd_logo_slider_logo_data<\/code>, <code>developersd_logo_slider_classes<\/code>, <code>developersd_logo_slider_output<\/code>, <code>developersd_logo_slider_capability<\/code>, and <code>developersd_logo_slider_template<\/code>.<\/p>\n\n<h3>Credits<\/h3>\n\n<p>Built by DeveloperSD. The frontend carousel is powered by <a href=\"https:\/\/kenwheeler.github.io\/slick\/\">Slick Carousel<\/a> by Ken Wheeler, MIT licensed, bundled locally under <code>assets\/vendor\/slick\/<\/code> (only the core script and structural stylesheet - no CDN dependency, and no icon-font theme file, since this plugin supplies its own arrow\/dot styling). See <code>assets\/vendor\/slick\/LICENSE<\/code> and <code>assets\/vendor\/slick\/NOTICE.txt<\/code> for full attribution. Admin drag-and-drop reordering uses jQuery UI Sortable, which ships with WordPress core.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>developersd-logo-slider<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the zip via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Go to <strong>Logo Slider \u2192 Add New Slider<\/strong>.<\/li>\n<li>Add your logos, configure the settings, set Status to <strong>Active<\/strong>, and Publish.<\/li>\n<li>Copy the shortcode into any post, page, or widget area.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20elementor%20or%20divi%3F\"><h3>Does this plugin require Elementor or Divi?<\/h3><\/dt>\n<dd><p>No. The core plugin works entirely through the <code>[developersd_logo_slider]<\/code> shortcode. Elementor and Divi integrations are automatically enabled only if those plugins are already active, and can be turned off from Settings \u2192 Advanced.<\/p><\/dd>\n<dt id=\"will%20deleting%20a%20slider%20delete%20my%20images%3F\"><h3>Will deleting a slider delete my images?<\/h3><\/dt>\n<dd><p>No. Deleting a slider (or uninstalling the plugin, by default) never deletes Media Library attachments \u2014 only the slider's own configuration.<\/p><\/dd>\n<dt id=\"can%20i%20have%20more%20than%20one%20slider%20on%20the%20same%20page%3F\"><h3>Can I have more than one slider on the same page?<\/h3><\/dt>\n<dd><p>Yes, use as many shortcodes as you like; each slider's assets are only loaded once per page regardless of how many instances appear.<\/p><\/dd>\n<dt id=\"how%20do%20i%20completely%20remove%20all%20plugin%20data%3F\"><h3>How do I completely remove all plugin data?<\/h3><\/dt>\n<dd><p>Enable \"Delete all plugin data on uninstall\" in Settings \u2192 Advanced before deleting the plugin from the Plugins screen. This is disabled by default so your data is preserved.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>Hardened rendered slider HTML across shortcode, Elementor, Divi, preview, and AJAX paths using a restricted WordPress HTML allowlist.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Escape rendered slider markup at preview and Elementor output boundaries using a restricted WordPress HTML allowlist.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Register Elementor slider assets on the Elementor asset lifecycle.<\/li>\n<li>Enforce bounded numeric pixel widths during settings sanitization and rendering.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Fixed Elementor asset registration timing to avoid WordPress incorrect-use notices with WP_DEBUG enabled.<\/li>\n<li>Restricted Container Max Width to a validated numeric pixel value, preventing CSS declaration injection.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Removed per-slider arbitrary Custom CSS input for WordPress.org directory compliance.<\/li>\n<li>Replaced direct preview style output with the WordPress inline-style API.<\/li>\n<li>Moved the top-level admin menu to a lower, less prominent position.<\/li>\n<li>Removed the non-functional sortable Status column declaration.<\/li>\n<li>Limited plugin notices to contextual plugin actions and removed the dashboard capability notice.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Fixed toggle switch dimensions when labels are stacked below the control.<\/li>\n<li>Normalized toggle alignment across settings cards, edit screens, and the slider list table.<\/li>\n<\/ul>\n\n<h4>1.0.14<\/h4>\n\n<ul>\n<li>Improved toggle layout across the plugin admin: status and Enabled\/Disabled text now renders below the switch for stable alignment on all screen sizes.<\/li>\n<li>Updated Global Settings checkboxes to use the same consistent toggle UI.<\/li>\n<\/ul>\n\n<h4>1.0.13<\/h4>\n\n<ul>\n<li>Clarified the Autoplay &amp; Loop settings with a dedicated Infinite Loop toggle.<\/li>\n<li>Infinite Loop works independently with autoplay, arrow navigation, touch swipe, and manual navigation.<\/li>\n<\/ul>\n\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>Removed the attachment meta_key\/meta_value lookup used by repeated image migrations.<\/li>\n<li>Added a compact source-URL hash index for migrated Media Library attachments to avoid slow post-meta queries.<\/li>\n<li>Kept direct attachment validation so stale or mismatched migration index entries are never reused.<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Fixed Elementor widget asset loading using declared script\/style dependencies.<\/li>\n<li>Added Elementor live-editor reinitialization support.<\/li>\n<li>Fixed Divi module registration and changed Visual Builder support to server-rendered partial compatibility.<\/li>\n<li>Removed the Divi module\/shortcode slug collision and preserved legacy Divi content compatibility.<\/li>\n<li>Improved builder preview feedback when a selected slider is inactive or unavailable.<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Added portable cross-site logo image migration for both single-slider and Export All JSON files.<\/li>\n<li>Same-site imports safely reuse the existing Media Library attachment when its URL matches.<\/li>\n<li>Cross-site imports download missing source images into the destination Media Library and remap slider attachment IDs automatically.<\/li>\n<li>Re-imports reuse images previously migrated from the same source URL to avoid duplicate Media Library files.<\/li>\n<li>Added safer handling for attachment-ID collisions between different WordPress sites and improved partial-import notices when a remote image cannot be fetched.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Fixed JSON import on servers where WordPress uses an FTP\/SSH filesystem transport and cannot access PHP upload temp files.<\/li>\n<li>Added a versioned export format shared by single-slider and Export All downloads.<\/li>\n<li>Kept backward compatibility with legacy single-slider and Export All JSON files.<\/li>\n<li>Added individual Export JSON buttons to the Settings slider list.<\/li>\n<li>Improved import validation and partial-import handling.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Kept Desktop, Tablet, and Mobile slide-count controls together in one responsive row.<\/li>\n<li>Added a configurable Mobile breakpoint to individual sliders and global defaults.<\/li>\n<li>Kept Desktop, Tablet, and Mobile breakpoint controls together in one responsive row.<\/li>\n<li>Added breakpoint ordering safeguards and explicit three-breakpoint Slick responsive handling.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Unified the admin settings design across General, Navigation, Autoplay &amp; Loop, Interaction, and Logo Display tabs.<\/li>\n<li>Added consistent cards, field groups, toggle switches, spacing, units, descriptions, and responsive admin layouts.<\/li>\n<li>Improved mobile settings-tab navigation.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Fixed pagination dots so they initialize reliably and remain available across responsive breakpoint changes.<\/li>\n<li>Added reliable per-device visibility handling for both arrows and dots without forcing Slick to rebuild controls.<\/li>\n<li>Added working top\/bottom dot placement and inside\/outside arrow positioning.<\/li>\n<li>Redesigned the Navigation settings tab with clean cards, responsive two-column controls, toggle switches, device pills, and aligned unit fields.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Added independent Desktop, Tablet, and Mobile visibility controls for arrow navigation and pagination dots.<\/li>\n<li>Added selectable arrow icon styles and a dedicated arrow icon-size control.<\/li>\n<li>Fixed arrow glyph centering and constrained oversized icons so they remain inside the navigation button.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Fixed remaining WordPress Plugin Check i18n, escaping, naming-convention, and readme warnings.<\/li>\n<li>Updated WordPress compatibility metadata to 7.1.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Improved input validation and sanitization for saved slider data and AJAX previews.<\/li>\n<li>Added stricter uploaded import-file validation.<\/li>\n<li>Removed the no-longer-required manual translation loading call for WordPress.org compatibility.<\/li>\n<li>Cleaned up Plugin Check security and nonce-analysis warnings.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added Active\/Inactive toggle switches to the slider editor and sliders list table.<\/li>\n<li>Added AJAX quick status switching from the sliders list table.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed frontend and admin Live Preview slider asset initialization.<\/li>\n<li>Fixed shortcode meta-box overflow styling.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Create responsive logo sliders with drag-and-drop management, flexible controls, shortcode output, and optional builder integrations.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/370103","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=370103"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/developersd"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=370103"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=370103"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=370103"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=370103"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=370103"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=370103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}