wp_register_icon()
Регистрирует SVG-иконку в указанной коллекции.
После регистрации иконка станет доступна редактору блоков, REST API и функции wp_get_icon().
Коллекцию нужно предварительно зарегистрировать через wp_register_icon_collection(). Обычно обе функции вызывают на событии init.
SVG очищается через wp_kses(). Разрешены только элементы <svg>, <path> и <polygon> с ограниченным набором атрибутов.
Хуков нет.
Возвращает
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 register icon WP 7.1
function wp_register_icon( $icon_name, $args ) {
return WP_Icons_Registry::get_instance()->register( $icon_name, $args );
}