houke / acf-icon-picker

Creates an icon picker ACF field
100 stars 47 forks source link
acf-field acf-icon-picker icon-picker icon-selector svg-icons

ACF Icon Selector Field

Allows you to create an 'icon-picker' acf-field.


Please note

I am no longer developing this plugin myself, please use https://github.com/smithfield-studio/acf-svg-icon-picker instead.

Description

Add the svg icons you want to be available in your theme to an acf folder inside an img folder in your theme. The field returns the name of the svg.

Compatibility

This ACF field type is compatible with:

Screenshots

Icon Picker

Installation

via Composer

  1. Add a line to your repositories array: { "type": "git", "url": "https://github.com/houke/acf-icon-picker" }
  2. Add a line to your require block: "houke/acf-icon-picker": "dev-master"
  3. Run: composer update

Manually

  1. Copy the acf-icon-picker folder into your wp-content/plugins folder
  2. Activate the Icon Selector plugin via the plugins admin page
  3. Create a new field via ACF and select the Icon Selector type

Filters

Use the below filters to override the default icon folder, path, and / or URL:

// modify the path to the icons directory
add_filter( 'acf_icon_path_suffix', 'acf_icon_path_suffix' );

function acf_icon_path_suffix( $path_suffix ) {
    return 'assets/img/icons/';
}

// modify the path to the above prefix
add_filter( 'acf_icon_path', 'acf_icon_path' );

function acf_icon_path( $path_suffix ) {
    return plugin_dir_path( __FILE__ );
}

// modify the URL to the icons directory to display on the page
add_filter( 'acf_icon_url', 'acf_icon_url' );

function acf_icon_url( $path_suffix ) {
    return plugin_dir_url( __FILE__ );
}

For Sage/Bedrock edit filters.php:

/// modify the path to the icons directory
add_filter('acf_icon_path_suffix',
  function ( $path_suffix ) {
    return '/assets/images/icons/'; // After assets folder you can define folder structure
  }
);

// modify the path to the above prefix
add_filter('acf_icon_path',
  function ( $path_suffix ) {
    return '/app/public/web/themes/THEME_NAME/resources';
  }
);

// modify the URL to the icons directory to display on the page
add_filter('acf_icon_url',
  function ( $path_suffix ) {
    return get_stylesheet_directory_uri();
  }
);

Changelog