WP eLDeR Addon документация v1.7.3 Вся документация Купить плагин
Документация › Для разработчиков

Хуки (фильтры)

Фильтры WP eLDeR Addon для тонкой настройки из темы или собственного плагина. Код добавляется в functions.php дочерней темы или в mu-плагин.

Плагин не регистрирует шорткоды и не выводит собственного JavaScript на сайте — расширяется он фильтрами ниже и константами.

Настройки и совместимость

wp_elder_addon_options

apply_filters( 'wp_elder_addon_options', array $options )

Действующие настройки плагина (сохранённые + значения по умолчанию) перед применением. Через этот фильтр работает анти-конфликт. На экране настроек плагина и при их сохранении не применяется — форма всегда показывает и сохраняет реальные значения.

PHP
// Принудительно выключить конвертацию на тестовой копии сайта
add_filter( 'wp_elder_addon_options', function ( $options ) {
	if ( defined( 'WP_ENVIRONMENT_TYPE' ) && 'staging' === WP_ENVIRONMENT_TYPE ) {
		$options['image_conversion_format'] = 'none';
	}
	return $options;
} );

wp_elder_addon_conflict_groups

apply_filters( 'wp_elder_addon_conflict_groups', array $groups )

Карта анти-конфликта: группа → какие настройки глушить (overrides) и по каким константам, классам или функциям узнавать конкурента. Можно добавить свою группу или убрать существующую.

PHP
// Глушить SMTP плагина, если активен свой почтовый mu-плагин
add_filter( 'wp_elder_addon_conflict_groups', function ( $groups ) {
	$groups['my_mailer'] = array(
		'label'     => 'Отправка почты через SMTP',
		'overrides' => array( 'mail_smtp_enabled' => false ),
		'constants' => array( 'MY_MAILER_VERSION' ),
		'classes'   => array(),
		'functions' => array(),
	);
	return $groups;
} );

wp_elder_addon_keep_admin_notice

apply_filters( 'wp_elder_addon_keep_admin_notice', bool $keep, callable $function, string $hook )

На экране настроек плагина скрываются чужие уведомления. Верните true, чтобы оставить нужное.

PHP
add_filter( 'wp_elder_addon_keep_admin_notice', function ( $keep, $function ) {
	if ( is_array( $function ) && is_object( $function[0] ) && $function[0] instanceof My_Backup_Notice ) {
		return true;
	}
	return $keep;
}, 10, 2 );

wp_elder_addon_keep_core_admin_notices

apply_filters( 'wp_elder_addon_keep_core_admin_notices', bool $keep )

Оставлять ли на экране настроек уведомления ядра WordPress (например, об обновлении). По умолчанию true.

PHP
add_filter( 'wp_elder_addon_keep_core_admin_notices', '__return_false' );

Медиафайлы

wp_elder_addon_webp_quality

apply_filters( 'wp_elder_addon_webp_quality', int $quality, array $upload, string $context )

Качество WebP для конкретного файла. $context — контекст загрузки WordPress (upload, sideload) или generated_size для промежуточных размеров. Итог ограничивается диапазоном 1–100.

PHP
// Миниатюры жмём сильнее, оригинал — как в настройках
add_filter( 'wp_elder_addon_webp_quality', function ( $quality, $upload, $context ) {
	return 'generated_size' === $context ? 75 : $quality;
}, 10, 3 );

wp_elder_addon_avif_quality

apply_filters( 'wp_elder_addon_avif_quality', int $quality, array $upload, string $context )

То же для AVIF.

SEO

wp_elder_addon_auto_alt_text

apply_filters( 'wp_elder_addon_auto_alt_text', string $title, int $post_id )

Текст, который подставляется в пустые alt при включённом «Автоматически проставлять alt». По умолчанию — заголовок записи.

PHP
add_filter( 'wp_elder_addon_auto_alt_text', function ( $title, $post_id ) {
	return $title . ' — ' . get_bloginfo( 'name' );
}, 10, 2 );

wp_elder_addon_ai_crawler_user_agents

apply_filters( 'wp_elder_addon_ai_crawler_user_agents', array $bots )

Список User-agent, которым «AI / LLM боты» запрещают обход в robots.txt.

PHP
add_filter( 'wp_elder_addon_ai_crawler_user_agents', function ( $bots ) {
	$bots[] = 'YandexAdditional';            // добавить
	return array_diff( $bots, array( 'Amazonbot' ) ); // убрать
} );

wp_elder_addon_verification_only_home

apply_filters( 'wp_elder_addon_verification_only_home', bool $only_home )

Коды подтверждения поисковиков выводятся только на главной (true). Верните false, чтобы выводить на всех страницах.

PHP
add_filter( 'wp_elder_addon_verification_only_home', '__return_false' );

Контент

wp_elder_addon_duplicate_post_types

apply_filters( 'wp_elder_addon_duplicate_post_types', array $post_types )

Типы записей, у которых есть ссылка «Дублировать» и блок «Специальные возможности». По умолчанию post и page.

PHP
add_filter( 'wp_elder_addon_duplicate_post_types', function ( $types ) {
	$types[] = 'portfolio'; // свой тип записей
	$types[] = 'services';
	return $types;
} );

wp_elder_addon_info_panel_items

apply_filters( 'wp_elder_addon_info_panel_items', array $items, WP_Post $post )

Строки блока «Информация» в редакторе. Элемент — массив label, value, copyable (кнопка копирования).

PHP
add_filter( 'wp_elder_addon_info_panel_items', function ( $items, $post ) {
	$items['slug'] = array(
		'label'    => 'Ярлык',
		'value'    => $post->post_name,
		'copyable' => true,
	);
	return $items;
}, 10, 2 );

wp_elder_addon_404_redirect_target

apply_filters( 'wp_elder_addon_404_redirect_target', string $url )

Куда ведёт «Перенаправлять 404 на главную». Пустая строка отменяет перенаправление.

PHP
// Вести на страницу поиска с остатком адреса
add_filter( 'wp_elder_addon_404_redirect_target', function () {
	$path = trim( (string) wp_parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH ), '/' );
	return home_url( '/?s=' . rawurlencode( str_replace( array( '-', '/' ), ' ', $path ) ) );
} );

wp_elder_addon_404_redirect_status

apply_filters( 'wp_elder_addon_404_redirect_status', int $status )

Код перенаправления 404, по умолчанию 301. Например, 302 — временное.

PHP
add_filter( 'wp_elder_addon_404_redirect_status', function () { return 302; } );

wp_elder_addon_404_redirect_protected_prefixes

apply_filters( 'wp_elder_addon_404_redirect_protected_prefixes', array $prefixes )

Первые сегменты адреса, для которых 404 не перенаправляется. По умолчанию admin, wp-admin, wp-login.php.

PHP
add_filter( 'wp_elder_addon_404_redirect_protected_prefixes', function ( $prefixes ) {
	$prefixes[] = 'api';
	return $prefixes;
} );

Сторонний фильтр

Для совместимости с кодом, написанным под плагин «WebP Converter», качество WebP при загрузке дополнительно проходит через webp_converter_on_upload_quality (int $quality, array $upload, string $context).