Skip to content

Releases: moghadam-pro/portfolio-wp-plugin

Release list

v1.1.0

Choose a tag to compare

@moghadam-pro moghadam-pro released this 01 Jul 11:54

MPRO Portfolio v1.1.0

Version 1.1.0 introduces a major architectural update focused on stability, cleaner administration, structured portfolio data, reusable presentation styles, and improved integration with WordPress, Elementor, and Rank Math SEO.

Highlights

  • Rebuilt the Portfolio admin menu architecture
  • Eliminated duplicate Tags and Categories menu items
  • Added three reusable portfolio card styles
  • Added structured project metadata
  • Added Elementor integration
  • Added Rank Math SEO variables
  • Added Single, Archive, Category, and Tag templates
  • Improved compatibility with previous plugin versions
  • Added runtime and static verification checks

Admin Menu Improvements

The Portfolio menu now uses a single controlled registration flow.

Submenu order:

  1. All Portfolio
  2. Add Portfolio
  3. Tags
  4. Categories
  5. Styles

Automatic WordPress menu generation is disabled for the Portfolio post type and its taxonomies, preventing duplicate submenu items and inconsistent ordering.

Portfolio Content Fields

Each portfolio item supports:

  • Title
  • Short Description
  • Featured Image
  • Separate Cover Image
  • Client or Company
  • Project URL
  • Publication Date
  • Implementation Date
  • Project Duration
  • Duration Unit
  • Role in Project
  • Tools Used
  • Collaborators
  • Additional Metadata
  • Categories
  • Tags
  • Featured Portfolio status
  • Card Style selection
  • Single Template selection
  • Full WordPress editor content

Structured Project Data

Project Duration now supports a numeric value and unit.

Available units include:

  • Days
  • Weeks
  • Months
  • Years

Tools, collaborators, and additional metadata can be managed through repeatable fields instead of comma-separated text.

Collaborator entries support:

  • Name
  • Role
  • URL

Portfolio Card Styles

Three built-in card styles are included:

  • Clean
  • Editorial
  • Immersive

Card styles can be selected globally or individually for each portfolio item.

Cards can be used through:

  • Shortcodes
  • Elementor
  • WordPress template loops
  • Archive templates
  • PHP helper functions

Frontend Templates

The plugin includes templates for:

  • Single Portfolio
  • Portfolio Archive
  • Portfolio Categories
  • Portfolio Tags
  • Portfolio Cards

Archive templates use the native WordPress main query for better pagination, filtering, and compatibility.

Templates can be overridden from the active theme.

Elementor Integration

A dedicated Portfolio Grid widget is included.

Available controls include:

  • Manual portfolio selection
  • Latest portfolios
  • Featured portfolios
  • Category filtering
  • Tag filtering
  • Card style selection
  • Responsive columns
  • Item count
  • Ordering
  • Pagination

Published Elementor templates can also be assigned as custom card or single portfolio templates.

The plugin remains functional when Elementor is not installed or activated.

Shortcodes

Display a portfolio grid:

[mpro_portfolio]

Display selected portfolio items:

[mpro_portfolio ids="123,456,789" style="editorial" columns="3"]

Display featured portfolio items:

[mpro_portfolio featured="true" style="immersive" columns="2"]

Display a category archive:

[mpro_portfolio category="product-design" posts_per_page="12" pagination="true"]

Display a single portfolio card:

[mpro_portfolio_card id="123" style="clean"]

PHP Template Helpers

Render a portfolio card inside a WordPress loop:

<?php mpro_portfolio_the_card( get_the_ID(), 'editorial' ); ?>

Return a portfolio card as HTML:

<?php
echo mpro_portfolio_get_card(
    get_the_ID(),
    'clean'
);
?>

Rank Math SEO Integration

Version 1.1.0 adds custom Rank Math replacement variables for:

  • Short Description
  • Role
  • Duration
  • Tools
  • Client

The Portfolio post type remains publicly queryable and compatible with Rank Math titles, descriptions, schema, Open Graph metadata, and XML sitemap settings.

The plugin continues to work when Rank Math is not installed or activated.

REST API Support

Portfolio content is available through the WordPress REST API.

Registered portfolio metadata is exposed where appropriate and can be used by:

  • Headless WordPress projects
  • Custom frontend applications
  • Gutenberg blocks
  • External integrations

Backward Compatibility

Version 1.1.0 includes compatibility handling for metadata created by earlier MPRO Portfolio builds.

Existing portfolio content should remain available after upgrading.

The plugin does not delete portfolio posts, taxonomy terms, or project metadata during uninstall.

Testing and Verification

The following checks were completed for version 1.1.0:

  • Plugin activation in a real WordPress runtime
  • Portfolio post type registration
  • Portfolio Category registration
  • Portfolio Tag registration
  • Portfolio item creation
  • Portfolio metadata registration
  • Portfolio card rendering
  • Manual portfolio grid rendering
  • Shortcode rendering
  • Legacy duration metadata reading
  • Unlimited item count support
  • Admin menu ordering
  • Duplicate submenu prevention
  • PHP syntax validation
  • JavaScript syntax validation
  • ZIP archive integrity
  • Package cleanliness
  • English-only source text verification

Runtime verification was completed using WordPress 6.5.

The codebase supports PHP 7.4 or later. Runtime testing in the available environment was performed using a newer PHP version.

Elementor and Rank Math integrations should also be verified on the target staging environment using the exact installed versions of WordPress, Elementor, Rank Math, and the active theme.

Upgrade Notes

Before upgrading:

  1. Create a database and files backup.
  2. Deactivate the previous plugin version.
  3. Upload the new ZIP file.
  4. Replace the existing plugin when prompted.
  5. Activate MPRO Portfolio.
  6. Open Settings → Permalinks.
  7. Click Save Changes.
  8. Verify the Portfolio menu and frontend templates.

Fixed

  • Fixed duplicated Portfolio Categories submenu
  • Fixed duplicated Portfolio Tags submenu
  • Fixed inconsistent submenu ordering
  • Removed the previous remove-and-recreate menu approach
  • Improved archive query behavior
  • Improved compatibility with Elementor-disabled environments
  • Improved compatibility with Rank Math-disabled environments
  • Improved legacy metadata handling

Changed

  • Rebuilt the admin menu architecture
  • Reworked project duration fields
  • Reworked tools as repeatable entries
  • Reworked collaborators as structured entries
  • Separated Cover Image from Featured Image
  • Improved template loading and theme overrides
  • Improved shortcode attribute handling
  • Improved plugin packaging and repository files

Added

  • Clean card style
  • Editorial card style
  • Immersive card style
  • Elementor Portfolio Grid widget
  • Manual portfolio selection
  • Featured portfolio filtering
  • Taxonomy archive templates
  • PHP card helper functions
  • Rank Math replacement variables
  • REST API metadata support
  • Migration compatibility for previous metadata
  • Runtime test report
  • GitHub-ready README documentation

Known Verification Limits

The following areas require final validation on the target staging website:

  • Elementor editor controls
  • Custom Elementor template rendering
  • Rank Math metadata output
  • Active theme CSS compatibility
  • Third-party cache plugin compatibility
  • Multilingual plugin compatibility
  • PHP 7.4 runtime behavior

Checksums

Use the SHA-256 file included with the release package to verify archive integrity.

v1.0.1

Choose a tag to compare

@moghadam-pro moghadam-pro released this 30 Jun 19:49

Changelog

All notable changes to MPRO Portfolio are documented in this file.

The project follows Semantic Versioning.

[1.0.1] - 2026-06-30

Fixed

  • in_array() call in the Styles settings screen now uses strict type comparison, preventing Elementor template checkboxes from incorrectly appearing checked due to PHP type coercion.
  • Elementor card style now falls back to Style 1 (Minimal) when Elementor is deactivated after a template was selected, instead of silently rendering nothing.
  • Removed a dead admin_init hook and its empty register_settings() method from MPRO_PF_Admin_Menu — settings registration was already handled correctly by MPRO_PF_Styles.
  • Admin repeater "Add Tool" button now builds new rows via jQuery DOM methods instead of HTML string concatenation, eliminating a potential XSS vector from unescaped data attributes.

Added

  • .vscode/settings.json with Intelephense WordPress stubs enabled, resolving all false-positive "Undefined function" IDE diagnostics across every plugin file.

[1.0.0] - 2026-06-30

Added

  • Portfolio custom post type with a dedicated top-level admin menu.
  • Native portfolio categories and tags.
  • Project overview, implementation date, duration, role, tools, metadata, collaborators, cover image, featured status, and presentation settings.
  • Clean, Editorial, and Immersive built-in card styles.
  • Built-in single and archive templates with theme override support.
  • Elementor Portfolio Grid widget with manual selection, taxonomy, featured, ordering, layout, and pagination controls.
  • Automatic discovery and rendering of published Elementor Saved Templates.
  • Portfolio grid and single-card shortcodes.
  • Rank Math defaults, fallback description, and portfolio replacement variables.
  • Custom post-list columns, sorting, and filters.
  • GitHub Actions PHP syntax validation workflow.