How to Create a Reusable WordPress Component with JetEngine ๐Ÿ”— **Source:** [How to Create a Reusable WordPress Component with JetEngine](https://www.youtube.com/watch?v=_yL9lbiSGyE) > [!note]+ Document Notes > tags: > - #WordPress > - #JetEngine > - #BricksBuilder > Author: Presenter not explicitly identified in the video transcript > Source: YouTube (tutorial video) > Reference: https://www.youtube.com/watch?v=_yL9lbiSGyE > date created: 2025-08-20 12:00 > > # ๐Ÿงฑ Title: Reusable Components with JetEngine (Elementor + Bricks) โ€” From Controls to Query Loops > <!-- deep-read:sections start --> ## ๐Ÿงญ Table of Contents: - [๐Ÿ“ Summary](#-summary) - [๐Ÿ“– Main Content](#-main-content) - [๐Ÿ—’๏ธ Notes](#๏ธ-notes) - [๐Ÿ“š References](#-references) - [๐Ÿ—ฃ๏ธ Paraphrase](#-paraphrase) - [๐Ÿ“ฐ Newsletter](#-newsletter) - [โœ… Action Items](#-action-items) - [๐Ÿงช Hypotheses](#-hypotheses) - [๐Ÿ“Š Methodology](#-methodology) - [โ“ Questions](#-questions) - [๐Ÿ”ฎ Future Research](#-future-research) - [๐Ÿ’ก Implications](#-implications) - [๐Ÿง  Learning Styles Assessment](#-learning-styles-assessment) - [โ™ฟ Accessibility Assessment](#-accessibility-assessment) - [๐ŸŒ DEIB Assessment](#-deib-assessment) - [๐Ÿงฎ Logical Validity](#-logical-validity) - [๐Ÿ›ก๏ธ DARVO Analysis](#-darvo-analysis) - [๐Ÿ” SEO Evaluation](#-seo-evaluation) - [๐ŸŽฏ Conclusion](#-conclusion) ### ๐Ÿ“š References: Include a list of sources consulted and cited in the article. ## ๐Ÿ“ Summary: - ๐Ÿ”น The video shows how to build **reusable JetEngine components** and then reuse them across pages and templates in **Elementor** and **Bricks**. - ๐Ÿ”น You define **content controls** (text, select, media, etc.) and **style controls** (colors, overlays), bind them to widgets via **dynamic tags**, and drop the component in different contexts. - ๐Ÿ”น In **Bricks**, you configure controls in JetEngineโ€™s settings, then use the component inside a **query loop** to display related data (e.g., doctors โ†” services). - ๐Ÿ”น The core payoff: **build once, reuse everywhere**, while keeping per-instance adjustments easy. ## ๐Ÿ“– Main Content: - ๐Ÿ”น **What is a JetEngine component?** ([0:10โ€“0:50](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=10)) - ๐Ÿ”ธ A partially preconfigured template usable across pages, listings, or singles; perfect for CTAs, headers, pop-ups. - ๐Ÿ”น **Elementor flow: create + bind** ([1:05โ€“5:07](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=65)) - ๐Ÿ”ธ Create a component, set the **editor** to Elementor. - ๐Ÿ”ธ Add **content controls**: CTA title, text area, image, button label (select), and button link. - ๐Ÿ”ธ Bind controls to widgets via **dynamic tags** (e.g., Heading โ†’ Component Control Value). - ๐Ÿ”น **Style controls** ([6:19โ€“8:15](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=379)) - ๐Ÿ”ธ Define color controls (text, overlay gradient parts, button). - ๐Ÿ”ธ Assign those to element styles via **Component Control Color**. - ๐Ÿ”น **Reuse on static and dynamic pages** ([8:20โ€“11:11](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=500)) - ๐Ÿ”ธ Drop the component on the homepage and fill **static** values. - ๐Ÿ”ธ On single service templates, switch fields to **dynamic** sources (post title, custom fields, featured image). - ๐Ÿ”น **Bricks flow + query loop** ([11:24โ€“16:18](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=684)) - ๐Ÿ”ธ Create a Bricks-view component but set **controls** from JetEngineโ€™s settings UI. - ๐Ÿ”ธ Use **Query Loop** in Bricks to repeat containers for doctor posts; add dynamic fields and a dynamic image. - ๐Ÿ”ธ Insert the component and change **context** to a **related items** relation (services โ†’ doctors) so the component shows service data per doctor. - ๐Ÿ”ธ Configure flex grid (row, wrap) for responsive multi-column listings. ### ๐Ÿ—’๏ธ Notes - ๐Ÿ”น **Components vs Listings** ([0:26โ€“0:45](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=26)) - ๐Ÿ”ธ Components can live outside loops; listings are loop-centric. - ๐Ÿ”ธ Use components for repeatable UI chunks you want everywhere. - ๐Ÿ”น **Control types & defaults** ([2:36โ€“3:14](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=156)) - ๐Ÿ”ธ Text, Text Area, Rich Text, Select, Single Media. - ๐Ÿ”ธ Defaults fill placeholders when values are missing. - ๐Ÿ”น **Dynamic bindings in Elementor** ([4:31โ€“5:07](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=271)) - ๐Ÿ”ธ Heading widget โ†’ Component Control Value โ†’ `CTA title`. - ๐Ÿ”ธ Text Editor โ†’ `CTA text`; Dynamic Link โ†’ `button link` and `button text`. - ๐Ÿ”น **Background image via control** ([5:50โ€“6:09](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=350)) - ๐Ÿ”ธ Use container background image โ†’ dynamic source โ†’ `CTA image`. - ๐Ÿ”น **Style controls mapped** ([7:31โ€“8:07](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=451)) - ๐Ÿ”ธ Text color control bound to headings and body text. - ๐Ÿ”ธ Button color control bound to the dynamic link widget. - ๐Ÿ”ธ Overlay gradient colors bound to container overlay. - ๐Ÿ”น **Static reuse on homepage** ([8:30โ€“9:24](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=510)) - ๐Ÿ”ธ Fill content controls directly; choose button variant via **Select**. - ๐Ÿ”น **Dynamic reuse on singles** ([9:39โ€“11:11](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=579)) - ๐Ÿ”ธ Title from **Current Object Field โ†’ Post Title** with prefix/suffix. - ๐Ÿ”ธ Description from **JetEngine custom field**; image from **Post Thumbnail**. - ๐Ÿ”น **Bricks component configuration** ([12:06โ€“13:26](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=726)) - ๐Ÿ”ธ Define two controls: service title, service description. - ๐Ÿ”ธ Bind in Bricks via dynamic data picker (labels match control names). - ๐Ÿ”น **Query Loop + related context** ([13:31โ€“15:36](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=811)) - ๐Ÿ”ธ Activate **Query Loop**; pick **JetEngine Query Builder โ†’ doctors query**. - ๐Ÿ”ธ Change component **context** to โ€œrelated items from services to doctors.โ€ - ๐Ÿ”ธ Map service fields; grid with flex wrap for columns. - ๐Ÿ”น **Tone & bias** - ๐Ÿ”ธ Tone: calm, practical, instructive. - ๐Ÿ”ธ Mild bias toward Elementorโ€™s ease-of-use claim; Bricks noted as different process, not inferior. ## ๐Ÿ“š References: - ๐Ÿ”น Video: *How to Create a Reusable WordPress Component with JetEngine* โ€” https://www.youtube.com/watch?v=_yL9lbiSGyE - ๐Ÿ”น JetEngine (Crocoblock) product page โ€” https://crocoblock.com - ๐Ÿ”น Bricks Builder โ€” https://bricksbuilder.io - ๐Ÿ”น WordPress dynamic data concepts โ€” https://developer.wordpress.org/themes/basics/the-loop/ ## ๐Ÿ—ฃ๏ธ Paraphrase: - ๐Ÿ”น **Defining and binding controls** ([2:00โ€“5:07](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=120)) - ๐Ÿ”ธ Original idea: Set up content and style controls, then attach them to widgets via dynamic tags so a single component can adapt per use. - ๐Ÿ”ธ Paraphrase: Create named knobs for text, media, and colors, and wire those knobs into widgets. Later, twist the knobs per page instead of rebuilding the UI. - ๐Ÿ”น **Bricks + related context** ([13:31โ€“15:36](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=811)) - ๐Ÿ”ธ Original idea: Put the component inside a query loop and switch its context to a post relation to show the right service data per doctor. - ๐Ÿ”ธ Paraphrase: Repeat a layout for each doctor, then point the componentโ€™s data lens at โ€œtheirโ€ services. The loop handles repetition; context picks the right source. ## ๐Ÿ“ฐ Newsletter: - ๐Ÿ”น **Build once, reuse everywhere.** JetEngine components let you prewire content and color controls, then drop the same CTA across Elementor pages and Bricks templates. - ๐Ÿ”น **Elementor:** Bind controls with dynamic tags; swap copy and images in seconds. - ๐Ÿ”น **Bricks:** Add the component inside a **Query Loop** and switch context to show related data (e.g., doctors โ†” services). - ๐Ÿ”น **Try it:** Video tutorial โ†’ https://www.youtube.com/watch?v=_yL9lbiSGyE โ€ข JetEngine โ†’ https://crocoblock.com โ€ข Bricks โ†’ https://bricksbuilder.io - ๐Ÿ”น **Community notes:** Share component patterns for healthcare, education, and events. Reuse beats rebuild. ## โœ… Action Items: - ๐Ÿ”น **Reusable prompt (aligned to open-source advocacy, contributor engagement, education, and OSPO goals):** - ๐Ÿ”ธ โ€œFor the attached resource, extract how its techniques support **reusable design systems** in WordPress. Map to: (1) **onboarding** materials for new contributors, (2) **transparency** practices (naming, versioning, docs), (3) **education** artifacts for Learn.WordPress.org, (4) **sustainability** via reuse and fewer one-off templates, (5) **OSPO** policy fit: component governance, review checklists, and deprecation guidance. Output: TL;DR, teaching outline, contributor tasks, sample rubric, KPIs, DEIB notes, and risk mitigations.โ€ - ๐Ÿ”น **Programmatic next steps:** - ๐Ÿ”ธ Build a **Component Library** repo (Elementor + Bricks examples) with a **controls schema** and **usage notes**. - ๐Ÿ”ธ Publish a **Learn WordPress** lesson: โ€œJetEngine Components 101 + Context Switching in Bricks Query Loops.โ€ - ๐Ÿ”ธ Draft an **OSPO-style guideline**: naming conventions, control types, context rules, and changelog templates. - ๐Ÿ”ธ Add **CI checks** for component JSON validity and control-name collisions. - ๐Ÿ”ธ Track KPIs: build time saved, defect rate after reuse, and content-editor satisfaction. ## ๐Ÿงช Hypotheses: - ๐Ÿ”น H1: A shared component library reduces new page build time by **โ‰ฅ35%** across teams. - ๐Ÿ”น H2: Standardized control names increase editor adoption and reduce support tickets by **โ‰ฅ25%**. - ๐Ÿ”น H3: Using related-context patterns in Bricks improves content accuracy on multisite catalogs by **โ‰ฅ20%**. ### ๐Ÿ“Š Methodology: - ๐Ÿ”น **Design:** A/B teams (library vs ad hoc) over 8 weeks; measure build time and post-launch fixes. - ๐Ÿ”น **Data sources:** Git commits, PR review notes, GA4 events (component insertions), support tickets, editor surveys. - ๐Ÿ”น **Analysis:** Mannโ€“Whitney for time distributions; chi-square on defect counts; thematic coding on editor feedback. ### โ“ Questions: - ๐Ÿ”น Which **minimal set of controls** covers 80% of CTA use cases? - ๐Ÿ”น How should we version components to balance **stability** with **iteration**? - ๐Ÿ”น Whatโ€™s the best practice for **context switching** when relations are many-to-many? ### ๐Ÿ”ฎ Future Research: - ๐Ÿ”น Build a **control-linter** that flags unclear labels, missing defaults, and non-semantic names. - ๐Ÿ”น Explore **access-control** for who can edit style vs content controls in large teams. - ๐Ÿ”น Compare **performance** of component-heavy pages across builders. ### ๐Ÿ’ก Implications: - ๐Ÿ”น Strong component governance reduces rework and keeps brand/UI consistent. - ๐Ÿ”น Education + standards lower the barrier for first-time contributors and content editors. ### ๐Ÿง  Learning Styles Assessment: - ๐Ÿ”น **Readability score (approx.):** Grade **9โ€“10** conversational technical style. 1. **Visual (Spatial)** - ๐Ÿ”น Present: On-screen UI steps; implicit visuals. - ๐Ÿ”น Improve: Add flowcharts for control binding and context graphs for relations. 2. **Aural (Auditory-Musical)** - ๐Ÿ”น Present: Narration throughout. - ๐Ÿ”น Improve: Provide a brief audio summary + chapter markers. 3. **Verbal (Linguistic)** - ๐Ÿ”น Present: Clear labels and step lists. - ๐Ÿ”น Improve: Glossary for โ€œcontext,โ€ โ€œrelated items,โ€ and โ€œquery loop.โ€ 4. **Physical (Kinesthetic)** - ๐Ÿ”น Present: Guided clicks; reproducible steps. - ๐Ÿ”น Improve: Downloadable sandbox with exercise tasks and checkpoints. 5. **Logical (Mathematical)** - ๐Ÿ”น Present: Control โ†’ widget โ†’ output chain. - ๐Ÿ”น Improve: Decision tree for when to use **Select** vs **Text** controls, and when to switch context. 6. **Social (Interpersonal)** - ๐Ÿ”น Present: Solo tutorial. - ๐Ÿ”น Improve: Add forum thread or Slack channel for pattern sharing. 7. **Solitary (Intrapersonal)** - ๐Ÿ”น Present: Transcript suits self-paced study. - ๐Ÿ”น Improve: Reflection prompts: โ€œName three controls your CTA needs and why.โ€ 8. **Naturalistic** - ๐Ÿ”น Present: None. - ๐Ÿ”น Improve: N/A for this topic. ### ๐Ÿ“Š Accessibility Assessment: - ๐Ÿ”น **Screen Reader Compatibility:** - ๐Ÿ”ธ Ensure headings are semantic; label dynamic controls and images; include alt text for example screenshots. - ๐Ÿ”น **Keyboard Navigation:** - ๐Ÿ”ธ Verify all control fields, color pickers, and dynamic-tag pickers are keyboard reachable; visible focus states required. - ๐Ÿ”น **Contrast & Readability:** - ๐Ÿ”ธ Meet **WCAG 2.2 AA** for text and UI elements; avoid low-contrast overlays on images. - ๐Ÿ”น **Text Resizing:** - ๐Ÿ”ธ Confirm layouts remain usable at 200โ€“400% zoom; allow line wrapping in long labels. ### ๐ŸŒ DEIB (Diversity, Equity, Inclusion, and Belonging) Assessment: - ๐Ÿ”น **Cultural Relevance:** - ๐Ÿ”ธ Example set is healthcare; add examples from nonprofit, education, and small business. - ๐Ÿ”น **Inclusive Language:** - ๐Ÿ”ธ Mostly neutral; define jargon terms for non-native English speakers. - ๐Ÿ”น **Neurodiversity Support:** - ๐Ÿ”ธ Chunk tasks; provide checklists and end-of-section summaries. - ๐Ÿ”น **Representation:** - ๐Ÿ”ธ Invite community-submitted components from diverse teams and regions. - ๐Ÿ”น **Psychological Safety:** - ๐Ÿ”ธ Encourage experimentation; show how to revert safely; provide clear error recovery steps. ### ๐Ÿงฎ Logical validity: - ๐Ÿ”น **Sound reasoning present** - ๐Ÿ”ธ *Causal reasoning* ([1:05โ€“5:07](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=65)): Define controls โ†’ bind to widgets โ†’ component becomes reusable. This sequence is coherent and repeatable. - ๐Ÿ”ธ *Balanced view* ([11:24โ€“12:06](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=684)): Acknowledges Bricks uses a different flow; demonstrates parity via query loops. - ๐Ÿ”ธ *Appeal to evidence (procedural)*: Steps are demonstrated live with working outputs. - ๐Ÿ”น **Potential fallacies or weak spots** - ๐Ÿ”ธ *Hasty generalization* ([1:20โ€“1:26](https://www.youtube.com/watch?v=_yL9lbiSGyE&t=80)): โ€œElementor offers the quickest wayโ€ is context-dependent; not universally true. - ๐Ÿ’ก Improve: Provide timing metrics or criteria (steps count, clicks, learning curve). - ๐Ÿ”ธ *Appeal to authority* (implicit brand trust): Assumes JetEngine/Bricks are โ€œsmoothโ€ without comparing rivals. - ๐Ÿ’ก Improve: Add a short matrix comparing ACF Blocks, native patterns, or other builders. - ๐Ÿ”น **Tone of voice:** Calm, instructional, pragmatic; light marketing phrasing yet mostly task-focused. ## ๐Ÿ›ก๏ธ DARVO Analysis: - ๐Ÿ”น **Deny:** None. The tutorial does not dismiss issues; it acknowledges limitations (Bricks config differs) and demonstrates fixes. - ๐Ÿ”น **Attack:** None. No negative framing of tools or users. - ๐Ÿ”น **Reverse Victim and Offender:** None. No attempt to claim unfair treatment or shift blame. - ๐Ÿ”น **Notes:** The rhetoric is **supportive**, process-oriented, and free of DARVO tactics. ### ๐Ÿ” SEO Evaluation: 1. **Keywords** - ๐Ÿ”น Present: โ€œJetEngine components,โ€ โ€œElementor,โ€ โ€œBricks,โ€ โ€œquery loop,โ€ โ€œdynamic tags.โ€ - ๐Ÿ”น Improve: Add long-tails like โ€œJetEngine component controls,โ€ โ€œBricks related items context,โ€ โ€œElementor dynamic CTA.โ€ 2. **Meta Description** - ๐Ÿ”น Include a 150โ€“160 char summary: โ€œBuild reusable JetEngine components in Elementor and Bricks, bind dynamic controls, and show related data in Bricks query loops.โ€ 3. **Title Tag** - ๐Ÿ”น Keep โ‰ค60 chars, include โ€œJetEngine,โ€ โ€œElementor,โ€ โ€œBricks.โ€ 4. **Headers** - ๐Ÿ”น Use H2/H3 for โ€œCreate controls,โ€ โ€œBind to widgets,โ€ โ€œBricks query loop,โ€ โ€œRelated context.โ€ 5. **Content Length** - ๐Ÿ”น Target 1,200โ€“1,800 words for written companion guide with step screenshots. 6. **Internal/External Links** - ๐Ÿ”น Internal: Related tutorials on CPTs, relations, and dynamic fields. - ๐Ÿ”น External: Link to official JetEngine and Bricks docs pages used. 7. **URL Structure** - ๐Ÿ”น Short slug: `/jetengine-components-elementor-bricks-query-loop`. 8. **Image Optimization** - ๐Ÿ”น Descriptive filenames; alt text including control names; compress images. 9. **Mobile Optimization** - ๐Ÿ”น Lazy-load screenshots; ensure code snippets scroll horizontally. 10. **User Engagement** - ๐Ÿ”น Add CTA to download sample component; embed a sandbox. 11. **Schema Markup** - ๐Ÿ”น `VideoObject` + `Article`; add `HowTo` steps if the guide lists tasks. 12. **Social Sharing** - ๐Ÿ”น Open Graph + Twitter Cards with an annotated screenshot of controls sidebar. ## ๐ŸŽฏ Conclusion: - ๐Ÿ”น JetEngine components centralize repeatable UI with **named controls** and **dynamic bindings**, while Bricks adds **query loops** and **related-context** power. - ๐Ÿ”น Standardize naming, defaults, and context rules, then publish a component library to accelerate builds and reduce support load. - ๐Ÿ”น This approach suits contributor onboarding, transparent governance, and long-term sustainability in WordPress projects. <!-- deep-read:sections end -->