wp_register_icon()WP 7.1.0

Регистрирует SVG-иконку в указанной коллекции.

После регистрации иконка станет доступна редактору блоков, REST API и функции wp_get_icon().

Коллекцию нужно предварительно зарегистрировать через wp_register_icon_collection(). Обычно обе функции вызывают на событии init.

SVG очищается через wp_kses(). Разрешены только элементы <svg>, <path> и <polygon> с ограниченным набором атрибутов.

Работает на основе: WP_Icons_Registry::register()

Хуков нет.

Возвращает

true|false.

  • true - иконка успешно зарегистрирована.
  • false - В случае неудачи (также будет создано уведомление _doing_it_wrong()):
    • имя иконки некорректно.
    • коллекция не зарегистрирована.
    • иконка уже существует.
    • отсутствует метка.
    • переданы неизвестные свойства.
    • не указано содержимое SVG или одновременно переданы content и file_path.

Использование

wp_register_icon( $icon_name, $args );
$icon_name(string) (обязательный)

Имя иконки в формате коллекция/имя, например my-plugin/star.

Имя после / должно начинаться и заканчиваться строчной латинской буквой или цифрой. Внутри также разрешены дефисы и подчёркивания.

Коллекция core зарезервирована для иконок ядра. Плагинам и темам следует использовать собственную коллекцию.

$args(array) (обязательный)

Свойства иконки.

  • label(string) (обязательный)
    Понятное пользователю название иконки. Строку следует переводить.

  • content(string)
    SVG-разметка иконки. Очищается сразу во время регистрации.

    Нельзя передавать вместе с file_path.

  • file_path(string)
    Полный путь к файлу .svg.

    Файл загружается только при первом получении или выводе иконки. Поэтому регистрация может завершиться успешно, даже если путь неверный или файл недоступен. В таком случае содержимое иконки будет пустым и WordPress создаст предупреждение.

Примеры

#1 Регистрация иконки из SVG-строки

Сначала зарегистрируем коллекцию, затем добавим в неё иконку.

add_action( 'init', 'my_plugin_register_icons' );

function my_plugin_register_icons() {
	wp_register_icon_collection( 'my-plugin', [
		'label' => __( 'My Plugin Icons', 'my-plugin' ),
	] );

	wp_register_icon( 'my-plugin/star', [
		'label'   => 'Star',
		'content' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
				<path fill="currentColor" d="M12 2l2.9 6.9 7.1.6-5.4 4.7 1.6 7L12 18l-6.2 3.2 1.6-7L2 9.5l7.1-.6z" />
			</svg>',
	] );
}

#2 Регистрация иконки из файла

add_action( 'init', 'my_plugin_register_file_icon' );

function my_plugin_register_file_icon() {
	wp_register_icon_collection( 'my-plugin', [
		'label' => __( 'My Plugin Icons', 'my-plugin' ),
	] );

	wp_register_icon( 'my-plugin/heart', [
		'label'     => __( 'Heart', 'my-plugin' ),
		'file_path' => plugin_dir_path( __FILE__ ) . 'icons/heart.svg',
	] );
}

Список изменений

С версии 7.1.0 Введена.

Код wp_register_icon() WP 7.1

function wp_register_icon( $icon_name, $args ) {
	return WP_Icons_Registry::get_instance()->register( $icon_name, $args );
}