Vexal Portfolio User Guide
Vexal Portfolio manages structured project galleries, showcases, and client media intake. It organizes media into destination pools, links attachments to projects, and routes uploads through Vexal Media for optimization—without replacing your theme templates.
What Vexal Portfolio does
- Projects — individual jobs/sites with gallery media pools and metadata
- Showcases — public portfolio pages with shortcodes and assigned projects
- Galleries — reusable media collections organized by type and purpose
- Gallery Types & Subtypes — configurable uploader classification registry
- Vexal Categories — shared filter taxonomy across Portfolio and Media
- Media Linkage — sync attachment ↔ project/showcase/category links
- Before/After — destination pools for comparison media
- Client Project Media Uploader — frontend intake via
[vexal_project_uploader] - Project Workspace — admin shell (Phase 1: Media tab placeholder)
Terminology (read this first)
| Term | Meaning | Code / CPT |
|---|---|---|
| Vexal Category | Filter taxonomy shared with Vexal Media | vexal_portfolio_category |
| Vexal Gallery | Reusable media collection / project record (admin: Projects) | vxp_portfolio |
| Vexal Project / Showcase | Higher-level public display container (admin: Showcases) | vxp_project |
| Gallery Type | What kind of gallery it is (e.g. Before & After, Project Progress) | Content types registry |
| Gallery Subtype | More specific subtype under a gallery type | Registry defaults + custom |
| Media Purpose | Destination/pool for uploaded media | before, after, progress, detail, project_video, featured, reference |
Admin naming note: In WordPress admin, Projects = vxp_portfolio (a job/gallery). Showcases = vxp_project (a public portfolio page). Code slugs are stable; admin labels are optimized for client workflows.
Media hierarchy
Media (attachments)
└── Project / Gallery (vxp_portfolio)
└── optional Showcase (vxp_project)
└── Vexal Category (vexal_portfolio_category)
One project can appear on multiple showcases. One showcase lists many projects.
Projects and Showcases
Projects (vxp_portfolio)
Admin menu: Projects. Each record is one job, site, or body of work.
_vxp_gallery_media— JSON destination pools from uploader (before, after, progress, etc.)_vxp_gallery_type/_vxp_gallery_subtype— classification metadata- Attachments link back via
_vxp_portfolio_item_id - Manage gallery media:
admin.php?page=vexal-portfolio-portfolios&edit={id}&view=media
Showcases (vxp_project)
Admin menu: Showcases. Public portfolio pages.
- Shortcode:
[vexal_portfolio id="slug"]using_vxp_slug _vxp_portfolio_ids— assigned project IDs- Layout, transition, and frontend label settings
Gallery Types and Subtypes
Admin menu: Gallery Types. Registry class: Vexal_Portfolio_Content_Types.
14+ default types including Project Progress, Before & After, Final Showcase, Detail Gallery, Project Video, Materials, Design Process, Installation Process, Team, Equipment, Product Gallery, Manufacturing Process, Inspection/QA, Documents, and Reference—each with default subtypes.
Admins can add custom subtypes (persisted in options). AI suggestion hook: vexal_portfolio_suggest_content_type.
Media Linkage
Admin screen: Media Linkage. Syncs attachment ↔ project/showcase/category relationships. Use after bulk imports or when columns appear empty.
Before/After and featured media
Media Purpose before and after populate dedicated pools in _vxp_gallery_media. featured and project_video serve hero and video destinations. Admin can build comparison galleries from organized pools.
Media Library columns (via Vexal Media)
| Column | Linked to |
|---|---|
| Vexal Gallery | vxp_portfolio project record |
| Vexal Project | vxp_project showcase (when assigned) |
| Vexal Category | vexal_portfolio_category term |
Filter: upload.php?vexal_gallery={portfolio_id}
Asset Batch IDs
Each uploader submission receives an asset batch ID and queue batch ID. Stored on submission CPT vxp_submission. Use batch IDs to trace intake → processing → Media Library placement.
Gallery media pools
_vxp_gallery_media stores JSON pools keyed by Media Purpose. Uploaded files are organized into the correct pool during processing. Admin builds portfolio displays from these pools—upload does not auto-publish showcases.
Client Project Media Uploader
Shortcode: [vexal_project_uploader] (parameterless).
Requires: workspace_enabled in settings, Vexal Media active, processing ready.
Full uploader workflow guide →
Project Workspace admin shell
When workspace_enabled is on (default: off), admins see Project Workspace in the menu.
Phase 1: Only the Media tab is active (placeholder). Other tabs show “Coming soon.”
Does not register [vexal_project_workspace] or [vexal_project_media] shortcodes.
Phase 1 vs future
Phase 1 (shipped)
- Client intake via
[vexal_project_uploader] - Gallery-first organization (type, subtype, media purpose)
- Vexal Media optimization bridge
- Media Library linkage (gallery, category, project columns)
- Asset batch tracking
- Enabled destinations: before, after, progress, detail, project_video, featured, reference
Future Coming soon
- Publishing sync — auto-place media on public showcases
- Workspace tabs — Overview, Story, Publishing, Visibility, Requests, Activity
- Phase 2 destinations — drone_footage, materials, documents, inspiration (registered but disabled)
- Request links — shortcode attrs
destination,token - Per-project allow lists for non-admin uploaders
- Full lifecycle: Media → Story → Publishing → Visibility → Requests
Uploaded media may not appear on public gallery/project pages until an admin builds the display. Publishing sync is a future step—not a Phase 1 gap.
Integrations
- Vexal Media — required for uploader processing; provides Media Library columns and optimization
- Vexal SmartBlocks — optional; media readiness in ledger snapshots when both active
API credentials belong in Vexal Media settings—not in Project Workspace. See Ecosystem bridges.
Recommended workflow
- Configure Gallery Types and Vexal Categories
- Enable Project Workspace in Portfolio settings
- Ensure Vexal Media is active and processing is configured
- Place
[vexal_project_uploader]on a client-facing page - Clients upload via the 5-step wizard
- Review processed media in Media Library (filter by Vexal Gallery)
- Organize pools in Project → Manage gallery
- Assign projects to Showcases and publish portfolio pages