Vexal Portfolio User Guide
Vexal Portfolio organizes Projects into public Portfolios. Each Project holds Project Assets (uploads), a visual Gallery module, and other Project modules such as Services and Materials. Client intake routes files through Vexal Media for optimization—without replacing your theme templates.
First time? See the unified Quick Start for install order. Portfolio uploader processing requires Vexal Media active.
Getting started
- Install and activate
vexal-portfolio. Ensure Vexal Media is active for optimization and Media Library columns. - Open WordPress admin → Vexal Portfolio → Dashboard.
- Review Project Asset Types (14+ defaults ship) and Categories (shared
vexal_portfolio_categorytaxonomy). - Create a Portfolio (
vxp_project) with a shortcode slug. - Create Projects (
vxp_portfolio) and assign them to one or more Portfolios. - For client uploads: open Vexal Portfolio → Settings, enable Project Workspace (
workspace_enabled; default off), and confirm Vexal Media processing is ready. - Place
[vexal_project_uploader]on a page when intake is ready — see Project Uploader guide. - Publish with
[vexal_portfolio id="slug"].
What Vexal Portfolio does
- Portfolios — public collections with shortcodes, layout, and assigned Projects
- Projects — individual bodies of work with Gallery Assets and Project modules
- Project Assets — uploaded or attached files classified by Asset Type / Asset Subtype
- Gallery — Project module that presents eligible visual Assets
- Project Asset Types — uploader classification registry
- Vexal Categories — shared filter taxonomy across Portfolio and Media
- Media Linkage — sync attachment ↔ Project / Portfolio / category links
- Client Project Media Uploader — frontend intake via
[vexal_project_uploader]
Terminology (read this first)
| Term | Meaning | Code / CPT |
|---|---|---|
| Portfolio | Collection of Projects | vxp_project |
| Project | One body of work | vxp_portfolio |
| Project Assets | Uploaded or attached Project resources | Attachments + _vxp_gallery_media pools |
| Gallery | Project module that displays visual Assets | Project Gallery UI / pools |
| Asset Type / Asset Subtype | Classification for uploaded Assets | Vexal_Portfolio_Content_Types registry |
| Asset destination | Pool for uploaded Assets | before, after, progress, detail, project_video, featured, reference |
| Vexal Category | Filter taxonomy shared with Vexal Media | vexal_portfolio_category |
| Showcase | Descriptive word only — not a product object | — |
Compatibility: CPT slugs are retained (vxp_project = Portfolio, vxp_portfolio = Project). Admin page slugs such as vexal-portfolio-projects remain for bookmarks. Services and Materials text fields are Project modules, not Asset Types—unless you are classifying uploaded material photos via the Asset Types registry.
Hierarchy
Portfolio (vxp_project)
└── Project (vxp_portfolio)
├── Project Details
├── Project Assets (uploads)
│ └── Gallery (visual presentation)
├── Services / Materials (structured modules)
└── Related Projects
One Project can belong to multiple Portfolios. Membership is stored only on Portfolio posts as _vxp_portfolio_ids.
Portfolios and Projects
Portfolios (vxp_project)
Admin menu: Portfolios. Public collection pages.
- Shortcode:
[vexal_portfolio id="slug"]using_vxp_slug _vxp_portfolio_ids— assigned Project IDs- Layout, transition, filters, CTA, and frontend labels
Projects (vxp_portfolio)
Admin menu: Projects. Each record is one job, site, or body of work.
_vxp_gallery_media— JSON Asset pools from uploader_vxp_gallery_type/_vxp_gallery_subtype— Asset Type classification metadata- Attachments link back via
_vxp_portfolio_item_id - Project Gallery:
admin.php?page=vexal-portfolio-portfolios&edit={id}&view=media
Project Asset Types and Subtypes
Admin menu: Project Asset Types. Registry class: Vexal_Portfolio_Content_Types (internal name unchanged).
Default types include Project Progress, Before & After, Finished Work, Detail Gallery, Project Video, Materials (upload classification), Design Process, Installation Process, Team, Equipment, Product Gallery, Manufacturing Process, Inspection/QA, Documents, and Reference—each with default subtypes.
Admins can add custom subtypes. AI suggestion hook: vexal_portfolio_suggest_content_type.
Media Linkage
Admin screen: Media Linkage. Syncs attachment ↔ Project / Portfolio / category relationships. Use after bulk imports or when columns appear empty.
Before/After and featured Assets
Asset destinations before and after populate dedicated pools in _vxp_gallery_media. featured and project_video serve hero and video destinations.
Media Library columns (via Vexal Media)
| Column | Linked to |
|---|---|
| Vexal Project | vxp_portfolio Project record |
| Vexal Portfolios | vxp_project Portfolio collections containing the Project |
| Vexal Category | vexal_portfolio_category term |
Filter: upload.php?vexal_gallery={project_id} (query arg name retained for compatibility).
Asset Batch IDs
Each uploader submission receives an asset batch ID and queue batch ID. Stored on submission CPT vxp_submission.
Project Asset pools
_vxp_gallery_media stores JSON pools keyed by Asset destination. Visual pools feed the Project Gallery. Upload does not auto-publish Portfolios.
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
When workspace_enabled is on (default: off), admins can open the Project Workspace utility (not in the primary shell by default).
Phase 1: Media tab is the active surface; other tabs may show “Coming soon.”
Recommended workflow
- Configure Project Asset Types and Vexal Categories
- Create a Portfolio
- Add Projects and Project Assets
- Assign Projects to Portfolios
- Enable Project Workspace if clients upload via shortcode
- Publish with
[vexal_portfolio id="slug"]