WPRemark поддерживает хуки WordPress: фильтры и действия. С их помощью можно изменить настройки и вывод блоков внимания, добавить свои иконки или ограничить доступ к разделам плагина.
Ниже приведены описание каждого хука и готовые примеры кода. Для добавления кода рекомендуем использовать плагин ProFunctions.
wpremark_shortcode_styles_near 1.2.0
Определяет, выводить ли CSS непосредственно перед шорткодом: по умолчанию он выводится рядом при css=”near”, без ID блока и вне контента текущей записи, иначе собирается для вывода в head страницы.
/**
* Пример: всегда выводить CSS шорткода непосредственно перед блоком внимания, а не собирать его для head страницы.
*/
add_filter( 'wpremark_shortcode_styles_near', '__return_true' );
wpremark_block_classes
Изменяет CSS-классы блока внимания, созданного шорткодом.
/**
* Добавить собственный CSS-класс к блокам внимания из шорткода.
*/
add_filter( 'wpremark_block_classes', function ( $classes ) {
$classes[] = 'my-attention-block';
return $classes;
} );
wpremark_content_autop
Управляет автоматическим добавлением абзацев в содержимое шорткода.
/**
* Отключить автоматическое добавление абзацев в содержимое шорткода.
*/
add_filter( 'wpremark_content_autop', '__return_false' );
wpremark_default_attributes 1.2.0
Изменяет атрибуты по умолчанию для новых блоков внимания и не заданных явно параметров шорткода. Уже сохраненные блоки и шорткоды не изменяются.
/**
* Пример: изменить иконку и цвета по умолчанию только для новых блоков внимания.
*/
add_filter( 'wpremark_default_attributes', function ( $attributes ) {
$attributes['icon_image'] = 'info-circle-regular';
$attributes['icon_color'] = '#2563eb';
$attributes['background_color'] = '#eff6ff';
return $attributes;
} );
wpremark/admin_menu/capability 1.2.0
Изменяет право WordPress для доступа к основному меню WPRemark и его главной странице. По умолчанию manage_options есть только у администраторов.
/**
* Пример: разрешить редакторам и администраторам доступ к основным страницам меню WPRemark.
*/
add_filter( 'wpremark/admin_menu/capability', function ( $capability ) {
// В стандартных ролях WordPress право edit_pages есть у Editor и Administrator.
return 'edit_pages';
} );
wpremark_admin_enqueue_scripts 1.3.0
Срабатывает после подключения ресурсов WPRemark в админке.
/**
* Пример: добавить собственный CSS после подключения ресурсов WPRemark в админке.
*/
add_action( 'wpremark_admin_enqueue_scripts', function () {
wp_add_inline_style( 'wpremark-style', '.wpremark-icon { border-radius: 50%; }' );
} );
wpremark/styles/content 1.3.0
Изменяет контент, в котором ищутся блоки внимания для генерации стилей страницы.
/**
* Пример: использовать контент выбранной страницы для поиска блоков внимания на архиве произвольного типа записей.
*/
add_filter( 'wpremark/styles/content', function ( $content ) {
if ( is_post_type_archive( 'product' ) ) {
$content = get_post_field( 'post_content', 123 );
}
return $content;
} );
wpremark_styles 1.2.0
Изменяет сгенерированные CSS-правила блоков внимания.
/**
* Пример: добавить свойство box-sizing ко всем блокам внимания.
*/
add_filter( 'wpremark_styles', function ( $styles ) {
$styles['.wpremark'] = [ 'box-sizing: border-box' ];
return $styles;
} );
wpremark_generate_styles_atts 1.2.0
Изменяет атрибуты блока перед генерацией CSS.
/**
* Пример: задать ширину иконки в CSS всех блоков внимания.
*/
add_filter( 'wpremark_generate_styles_atts', function ( $attributes, $editor ) {
$attributes['icon_width'] = 40;
return $attributes;
}, 10, 2 );
wpremark_generate_styles_prefix 1.2.0
Изменяет префикс CSS-селекторов сгенерированных стилей блока.
/**
* Пример: ограничить сгенерированные CSS блоков внимания контейнером основного контента.
*/
add_filter( 'wpremark_generate_styles_prefix', function ( $prefix ) {
return '.site-main ';
} );
wpremark/styles/default_styles 1.2.0
Изменяет базовые CSS-правила, которые всегда выводятся для блоков внимания.
/**
* Пример: добавить базовое CSS-правило, которое выводится на каждой странице со стилями WPRemark.
*/
add_filter( 'wpremark/styles/default_styles', function ( $styles ) {
return $styles . '.wpremark { box-sizing: border-box; }';
} );
wpshop/icons/list 0.1.0
Общий фильтр списка иконок для продуктов WPShop.
/**
* Пример: добавить новую пользовательскую иконку в список иконок плагина.
*/
add_filter( 'wpshop/icons/list', function ( $icons ) {
$icons['custom-star-regular'] = [
'width' => 512,
'height' => 512,
'path' => 'M256 32l70.4 142.7 157.6 22.9-114 111.1 26.9 157.3L256 390.5 115.1 466l26.9-157.3L28 197.6l157.6-22.9L256 32z',
'group' => 'content',
'since' => '1.3.0',
];
return $icons;
} );
/**
* Пример: изменить данные уже существующей иконки.
*/
add_filter( 'wpshop/icons/list', function ( $icons ) {
if ( isset( $icons['warning-triangle-regular'] ) ) {
$icons['warning-triangle-regular']['group'] = 'signs';
$icons['warning-triangle-regular']['path'] = 'M256 40l205 356H51L256 40zm0 48L92 372h328L256 88z';
}
return $icons;
} );
wpshop/icons/groups 0.1.0
Изменяет группы иконок, доступные в продуктах WPShop.
/**
* Пример: добавить отдельную группу для пользовательских иконок.
*/
add_filter( 'wpshop/icons/groups', function ( $groups ) {
$groups['custom'] = [
'name' => 'Custom',
'order' => 100,
];
return $groups;
} );