Skip to main content

Portfolio

FREE!

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 used single.php from the theme root directory, you can overwrite it by creating framework-customizations/extensions/portfolio/views/single.php.
  • taxonomy.php - Portfolio category template. By default is used taxonomy.php from the theme root directory, you can overwrite it by creating framework-customizations/extensions/portfolio/views/taxonomy.php.
  • content.php - Default portfolio single page template content. It is loaded if the framework-customizations/extensions/portfolio/views/single.php doesn't exist and is used single.php from 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-list and portfolio-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.