{"id":51505701,"url":"https://github.com/lancedesk/lancedesk-smart-dynamic-accordion","last_synced_at":"2026-07-08T00:01:41.356Z","repository":{"id":353783718,"uuid":"1220891356","full_name":"lancedesk/lancedesk-smart-dynamic-accordion","owner":"lancedesk","description":"Secure, modular Elementor smart dynamic accordion widget for WordPress.","archived":false,"fork":false,"pushed_at":"2026-06-09T17:29:30.000Z","size":89,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-09T19:11:27.346Z","etag":null,"topics":["accordion","dynamic-content","elementor","faq","wordpress","wordpress-plugin"],"latest_commit_sha":null,"homepage":"https://lancedesk.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lancedesk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-25T13:27:07.000Z","updated_at":"2026-06-09T17:32:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/lancedesk/lancedesk-smart-dynamic-accordion","commit_stats":null,"previous_names":["lancedesk/lancedesk-smart-dynamic-accordion"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/lancedesk/lancedesk-smart-dynamic-accordion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lancedesk%2Flancedesk-smart-dynamic-accordion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lancedesk%2Flancedesk-smart-dynamic-accordion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lancedesk%2Flancedesk-smart-dynamic-accordion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lancedesk%2Flancedesk-smart-dynamic-accordion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lancedesk","download_url":"https://codeload.github.com/lancedesk/lancedesk-smart-dynamic-accordion/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lancedesk%2Flancedesk-smart-dynamic-accordion/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35246561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-07T02:00:07.222Z","response_time":90,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accordion","dynamic-content","elementor","faq","wordpress","wordpress-plugin"],"created_at":"2026-07-08T00:01:40.447Z","updated_at":"2026-07-08T00:01:41.337Z","avatar_url":"https://github.com/lancedesk.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LanceDesk Smart Dynamic Accordion for Elementor\n\nSecure, modular, and Elementor-native accordion widget for WordPress with both manual repeater content and smart dynamic post-driven rendering.\n\n[![CI](https://github.com/lancedesk/lancedesk-smart-dynamic-accordion/actions/workflows/ci.yml/badge.svg)](https://github.com/lancedesk/lancedesk-smart-dynamic-accordion/actions/workflows/ci.yml)\n[![Release ZIP](https://github.com/lancedesk/lancedesk-smart-dynamic-accordion/actions/workflows/release-zip.yml/badge.svg)](https://github.com/lancedesk/lancedesk-smart-dynamic-accordion/actions/workflows/release-zip.yml)\n\n## Highlights\n\n- Manual accordion items with title + rich content editor.\n- Dynamic mode from public post types.\n- Advanced query controls:\n  - post type, count, order, order by, offset\n  - include/exclude post IDs\n  - optional category and tag filters with AND/OR relation\n  - advanced custom taxonomy slug + terms (slug or term ID)\n- Load more for limited dynamic lists:\n  - show-more button with remaining count (`%d` placeholder)\n  - infinite scroll mode\n  - full Elementor style controls for the load-more button\n- Dynamic field mapping:\n  - title from post title or custom field\n  - content from post content, excerpt, or custom field\n  - meta value type auto detection (text/html/image URL)\n- Elementor-native controls:\n  - expand/collapse icons + icon position\n  - normal/hover/active state colors\n  - typography, spacing, optional dividers, title/content padding, content background\n- Optional dynamic \"Read more\" links:\n  - custom label\n  - open in new tab\n  - nofollow\n- Optional FAQ schema output with guardrails:\n  - minimum valid Q\u0026A item count\n  - optional requirement that title includes `?`\n\n## Security and Quality\n\n- Namespaced architecture (`LanceDesk\\HBDA`) with unique prefix (`ldrj_hbda_`).\n- Sanitization and escaping across controls and rendering.\n- Optimized dynamic queries (`no_found_rows`, reduced cache overhead where appropriate).\n- Accessible accordion markup (`aria-expanded`, `aria-controls`, keyboard-friendly button triggers).\n\n## Installation\n\n1. Copy this plugin folder to `wp-content/plugins/`.\n2. Activate **LanceDesk Smart Dynamic Accordion for Elementor** in WordPress.\n3. Make sure Elementor is installed and active.\n4. Open Elementor and search for **Smart Dynamic Accordion** in the **Lance Desk** category.\n\n## Quick Usage\n\n### Manual mode\n\n1. Set `Source` to `Manual Items`.\n2. Add repeater items.\n3. Set icons and style controls to match your design.\n\n### Dynamic mode\n\n1. Set `Source` to `Dynamic from Posts`.\n2. Choose post type and query filters.\n3. Configure field mapping (title/content/meta).\n4. Optionally enable `Read More` and `FAQ Schema`.\n\n## Project Structure\n\n```text\ndynamic-accordion/\n├─ assets/\n│  ├─ css/ldrj-hbda-accordion.css\n│  └─ js/ldrj-hbda-accordion.js\n├─ includes/\n│  ├─ class-ldrj-hbda-plugin.php\n│  ├─ class-ldrj-hbda-query.php\n│  ├─ class-ldrj-hbda-ajax.php\n│  └─ widgets/class-ldrj-hbda-smart-accordion-widget.php\n├─ lancedesk-smart-dynamic-accordion.php\n├─ readme.txt\n├─ README.md\n├─ uninstall.php\n└─ LICENSE\n```\n\n## Roadmap\n\n- Dynamic tag support for richer Elementor integrations.\n- Additional content templates for post cards/media blocks inside accordion bodies.\n- Comprehensive unit and integration tests.\n\n## Contributing\n\nContributions are welcome. Please review `CONTRIBUTING.md` and use the issue/PR templates in `.github/`.\n\n## License\n\nMIT — see `LICENSE`.\n\nIf you plan to distribute via WordPress.org directory, consider switching to GPL-compatible licensing.\n\n## Maintainer\n\nLance Desk  \n[Lance Desk](https://lancedesk.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flancedesk%2Flancedesk-smart-dynamic-accordion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flancedesk%2Flancedesk-smart-dynamic-accordion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flancedesk%2Flancedesk-smart-dynamic-accordion/lists"}