Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/nk-crew/visual-portfolio/llms.txt

Use this file to discover all available pages before exploring further.

This page documents the core PHP classes available in Visual Portfolio for developers to extend and integrate with the plugin.

Core Classes

Visual_Portfolio

The main plugin class that bootstraps the Visual Portfolio plugin. Location: class-visual-portfolio.php

Properties

  • $plugin_name (string) - Name of the plugin
  • $plugin_basename (string) - Basename of plugin main file
  • $plugin_path (string) - Path to the plugin directory
  • $plugin_url (string) - URL to the plugin directory
  • $pro_plugin_path (string) - Path to the pro plugin directory (if installed)
  • $pro_plugin_url (string) - URL to the pro plugin directory (if installed)

Methods

instance()
public static function instance(): Visual_Portfolio
Get the singleton instance of the plugin. Ensures only one instance exists in memory. Returns: The single Visual_Portfolio instance Example:
$vp = Visual_Portfolio::instance();
$plugin_path = $vp->plugin_path;

Visual_Portfolio_Get

Handles portfolio data retrieval and output configuration. Location: classes/class-get-portfolio.php

Methods

get_all_layouts()
public static function get_all_layouts(): array
Get all available portfolio layouts registered via the vpf_extend_layouts filter. Returns: Array of registered layouts with their controls Example:
$layouts = Visual_Portfolio_Get::get_all_layouts();
get_all_items_styles()
public static function get_all_items_styles(): array
Get all available items styles registered via the vpf_extend_items_styles filter. Returns: Array of registered items styles with their controls
get_options()
public static function get_options( array $atts = array() ): array|false
Get all available options for a portfolio list. Parameters:
  • $atts (array) - Portfolio attributes including ‘id’ or ‘block_id’
Returns: Array of portfolio options or false if no ID provided Example:
$options = Visual_Portfolio_Get::get_options( array( 'id' => 123 ) );
is_preview()
public static function is_preview(): bool
Check if portfolio is displayed in preview mode. Returns: True if in preview mode, false otherwise
allow_taxonomies_for_filter()
public static function allow_taxonomies_for_filter( string $taxonomy ): bool
Check if a taxonomy is allowed to show in filters. Parameters:
  • $taxonomy (string) - Taxonomy name
Returns: True if taxonomy is allowed, false otherwise
get_output_config()
public static function get_output_config( array $atts = array() ): array|bool
Prepare configuration that will be used for portfolio output. Parameters:
  • $atts (array) - Portfolio attributes
Returns: Array of output configuration or false on failure

Visual_Portfolio_Assets

Manages static and dynamic asset loading. Location: classes/class-assets.php

Methods

register_script()
public static function register_script(
    string $name,
    string $path,
    array $dependencies = array(),
    string $version = null,
    array|bool $args = array()
): void
Register a JavaScript file. Parameters:
  • $name (string) - Script handle name
  • $path (string) - File path relative to plugin root
  • $dependencies (array) - Array of script dependencies
  • $version (string|null) - Script version
  • $args (array|bool) - Loading strategies (in_footer, strategy)
Example:
Visual_Portfolio_Assets::register_script(
    'my-custom-script',
    'assets/js/custom',
    array( 'jquery' ),
    '1.0.0',
    array( 'in_footer' => true )
);
enqueue_script()
public static function enqueue_script(
    string $name,
    string $path,
    array $dependencies = array(),
    string $version = null,
    array|bool $args = array()
): void
Register and enqueue a JavaScript file. Parameters: Same as register_script()
register_style()
public static function register_style(
    string $name,
    string $path,
    array $dependencies = array(),
    string $version = null
): void
Register a CSS file. Parameters:
  • $name (string) - Style handle name
  • $path (string) - File path relative to plugin root
  • $dependencies (array) - Array of style dependencies
  • $version (string|null) - Style version
enqueue_style()
public static function enqueue_style(
    string $name,
    string $path,
    array $dependencies = array(),
    string $version = null
): void
Register and enqueue a CSS file. Parameters: Same as register_style()
get_asset_file()
public static function get_asset_file( string $filepath, string $filetype = '' ): array
Get asset file data from .asset.php file. Parameters:
  • $filepath (string) - Asset file path
  • $filetype (string) - Asset file type (‘style’ or ‘script’)
Returns: Array with ‘dependencies’ and ‘version’ keys

Visual_Portfolio_Images

Handles image processing, lazy loading, and image size management. Location: classes/class-images.php

Properties

  • $image_processing (bool) - True when image is being processed
  • $allow_vp_lazyload (bool) - Whether VP images use lazyload
  • $allow_wp_lazyload (bool) - Whether WordPress images use lazyload
  • $lazyload_user_exclusions (array) - List of lazyload exclusions

Methods

add_image_sizes()
public static function add_image_sizes(): void
Register custom image sizes for Visual Portfolio. Registers the following sizes:
  • vp_sm - Small
  • vp_md - Medium
  • vp_lg - Large
  • vp_xl - Extra Large
  • vp_sm_popup - Small popup
  • vp_md_popup - Medium popup
  • vp_xl_popup - Extra Large popup
wp_get_attachment_image_url()
public static function wp_get_attachment_image_url(
    int $attachment_id,
    string|array $size = 'thumbnail',
    bool $icon = false
): string|false
Get the URL of an image attachment. Parameters:
  • $attachment_id (int) - Image attachment ID
  • $size (string|array) - Image size to retrieve
  • $icon (bool) - Whether to treat as icon
Returns: Attachment URL or false if unavailable
get_image_blocked_attributes()
public static function get_image_blocked_attributes(): array
Get blocked attributes to prevent lazy loading. Returns: Array of attribute names that block lazy loading

Visual_Portfolio_Controls

Manages control registration and rendering for the portfolio builder. Location: classes/class-controls.php

Methods

register_categories()
public static function register_categories( array $categories = array() ): void
Register control categories. Parameters:
  • $categories (array) - Array of category definitions
register()
public static function register( array $controls = array() ): void
Register controls for the portfolio builder. Parameters:
  • $controls (array) - Array of control definitions
Example:
Visual_Portfolio_Controls::register( array(
    array(
        'category' => 'my-category',
        'type' => 'text',
        'name' => 'my_custom_field',
        'label' => 'My Custom Field',
        'default' => 'Default value',
    ),
) );
get_registered_array()
public static function get_registered_array(): array
Get all registered controls as array. Returns: Array of all registered controls
get_registered_value()
public static function get_registered_value( string $name, int|false $id = false ): mixed
Get registered control value. Parameters:
  • $name (string) - Control name
  • $id (int|false) - Post ID to get value from
Returns: Control value

Visual_Portfolio_Settings

Manages plugin settings and options. Location: classes/class-settings.php

Methods

get_option()
public static function get_option(
    string $option,
    string $section,
    string $deprecated_default = ''
): bool|string
Get plugin option value. Parameters:
  • $option (string) - Option name
  • $section (string) - Section name
  • $deprecated_default (string) - Deprecated default value parameter
Returns: Option value (converts ‘on’/‘off’ to boolean) Example:
$lazy_loading = Visual_Portfolio_Settings::get_option( 'lazy_loading', 'vp_images' );
update_option()
public static function update_option(
    string $option,
    string $section,
    string $value
): void
Update plugin option value. Parameters:
  • $option (string) - Option name
  • $section (string) - Section name
  • $value (string) - New option value

Visual_Portfolio_Templates

Handles template loading and rendering. Location: classes/class-templates.php

Methods

include_template()
public static function include_template( string $template_name, array $args = array() ): void
Include a template file with security checks. Parameters:
  • $template_name (string) - Template file name (without .php)
  • $args (array) - Variables to extract into template scope
Example:
Visual_Portfolio_Templates::include_template(
    'items-list/item',
    array(
        'options' => $options,
        'item' => $item_data,
    )
);
Template Search Order:
  1. Theme: /visual-portfolio/{$template_name}.php
  2. Pro Plugin: templates/{$template_name}.php
  3. Free Plugin: templates/{$template_name}.php
find_template_styles()
public static function find_template_styles( string $template_name ): array
Find CSS template file. Parameters:
  • $template_name (string) - Template name
Returns: Array with ‘path’ and ‘version’ keys
include_template_style()
public static function include_template_style(
    string $handle,
    string $template_name,
    array $deps = array(),
    string|bool|null $ver = false,
    string $media = 'all'
): void
Include and enqueue a template stylesheet. Parameters:
  • $handle (string) - Style handle name
  • $template_name (string) - Template name
  • $deps (array) - Dependencies
  • $ver (string|bool|null) - Version
  • $media (string) - Media type
is_allowed_template_path()
public static function is_allowed_template_path( string $real_path ): bool
Check if a resolved file path is within allowed template directories (security check). Parameters:
  • $real_path (string) - The resolved file path
Returns: True if path is allowed

Filters

Extending Layouts

apply_filters( 'vpf_extend_layouts', array $layouts )
Register custom portfolio layouts. Example:
add_filter( 'vpf_extend_layouts', function( $layouts ) {
    $layouts['my-custom-layout'] = array(
        'title' => 'My Custom Layout',
        'controls' => array(
            // Control definitions
        ),
    );
    return $layouts;
} );

Extending Items Styles

apply_filters( 'vpf_extend_items_styles', array $items_styles )
Register custom item styles.

Template Filters

apply_filters( 'vpf_include_template', string $template, string $template_name, array $args )
Filter the template file path before inclusion.
apply_filters( 'vpf_include_template_args', array $args, string $template_name )
Filter template arguments before extraction.

Lazyload Filters

apply_filters( 'vpf_images_lazyload', bool $enabled )
Enable or disable lazy loading globally.
apply_filters( 'vpf_lazyload_images_blocked_attributes', array $blocked_attributes )
Add attributes that prevent lazy loading.

Actions

Portfolio Output

do_action( 'vpf_before_get_output', array $options )
Fires before portfolio output is generated.

Asset Loading

do_action( 'vpf_enqueue_scripts', array $options )
Fires when portfolio scripts should be enqueued.

Helper Functions

visual_portfolio()

function visual_portfolio(): Visual_Portfolio
Get the main Visual Portfolio instance. Returns: Visual_Portfolio singleton instance Example:
$plugin_url = visual_portfolio()->plugin_url;