Portfolio
Build a premium portfolio in minutes.
A dedicated portfolio post type with categories, tags, galleries and flexible project layouts to showcase your work — a full portfolio builder, free.
The Portfolio extension allows you to create Portfolio section on your site.
Configuration
In the config.php file, you can set the portfolio Gallery and Featured Image sizes.
$cfg['image_sizes'] = array(
'featured-image' => array(
'width' => 227,
'height' => 142,
'crop' => true
),
'gallery-image' => array(
'width' => 474,
'height' => 241,
'crop' => true
)
);
Also define if the portfolio custom post will support gallery or not.
$cfg['has-gallery'] = true;
Helpers
-
fw_ext_portfolio_get_gallery_images( $post_id )- use this function to return all project gallery images.<?php if ( have_posts() ) : ?><?php while ( have_posts() ) : ?><?php $gallery = fw_ext_portfolio_get_gallery_images(); ?><ul class="gallery"><?php foreach( $gallery as $image ) : ?><li><a href="<?php echo get_permalink($image['attachment_id'])?>"><img src="<?php echo $image['url'] ?>" alt=""/></a></li><?php endforeach ?></ul><?php endwhile ?><?php endif ?>[!NOTE] If you are in The Loop, the global $post will be used for $post_id
Hooks
-
fw_ext_portfolio_post_slug- portfolio custom post slug/*** @internal*/function _filter_custom_portfolio_post_slug($slug) {return 'work';}add_filter('fw_ext_portfolio_post_slug', '_filter_custom_portfolio_post_slug'); -
fw_ext_portfolio_taxonomy_slug- portfolio taxonomy slug/*** @internal*/function _filter_custom_portfolio_tax_slug($slug) {return 'works';}add_filter('fw_ext_portfolio_taxonomy_slug', '_filter_custom_portfolio_tax_slug'); -
fw_ext_projects_post_type_name- portfolio custom post labels (plural and singular)/*** @internal*/function _filter_portfolio_labels($labels) {$labels = array('singular' => __('Custom Project', '{domain}'),'plural' => __('Custom Projects', '{domain}'),);return $labels;}add_filter('fw_ext_projects_post_type_name', '_filter_portfolio_labels'); -
fw_ext_portfolio_category_name- portfolio taxonomy labels (plural and singular)/*** @internal*/function portfolio_tax_labels_names( $labels ) {$labels = array('singular' => __( 'Custom Category', '{domain}' ),'plural' => __( 'Custom Categories', '{domain}' ),);return $labels;}add_filter( 'fw_ext_portfolio_category_name', 'portfolio_tax_labels_names' );
Views
Templates are located in the views/ directory. Here is the list of templates that you can customize:
single.php- Portfolio course single post template. By default is usedsingle.phpfrom the theme root directory, you can overwrite it by creatingframework-customizations/extensions/portfolio/views/single.php.taxonomy.php- Portfolio category template. By default is usedtaxonomy.phpfrom the theme root directory, you can overwrite it by creatingframework-customizations/extensions/portfolio/views/taxonomy.php.content.php- Default portfolio single page template content. It is loaded if theframework-customizations/extensions/portfolio/views/single.phpdoesn't exist and is usedsingle.phpfrom the theme root directory. The content of this view is rendered using worpdress the_content filter, when the course single page is loaded.
With the AI Assistant
When the AI Assistant (Beta) extension is active, the AI can manage projects:
portfolio-listandportfolio-describe— the projects, and the project fields (client, date, services, results, testimonial, gallery …).portfolio-save-project— create or update a project: title, text, categories and tags, featured image, gallery and details, checked against the same fields as the edit screen. New projects are drafts.
Every change can be undone.