Переопределить действие WordPress, запускаемое плагином в дочерней теме. - PullRequest
0 голосов
/ 09 июля 2019

Я использую плагин в моем проекте WordPress, поскольку они используют фильтр style_loader_tag для форматирования тегов таблицы стилей, с помощью этого фильтра они удалили идентификатор таблицы стилей, например:

<link rel="stylesheet" href="http://hoaa.local/wp-includes/css/dashicons.min.css">

без использования этого фильтра должно быть:

<link rel='stylesheet' id='admin-bar-css'  href='http://hoaa.local/wp-includes/css/admin-bar.min.css'  media='all' />

Они использовали что-то вроде этого.

add_filter( 'style_loader_tag',  function($input) {
    preg_match_all( "!<link rel='stylesheet'\s?(id='[^']+')?\s+href='(.*)' type='text/css' media='(.*)' />!", $input, $matches );
if ( empty( $matches[2] ) ) {
    return $input;
}
$media = $matches[3][0] !== '' && $matches[3][0] !== 'all' ? ' media="' . $matches[3][0] . '"' : '';

return '<link rel="stylesheet" href="' . $matches[2][0] . '"' . $media . '>' . "\n";
} );

Есть ли способ, которым я могу отменить эту очистку. Когда я использую что-то вроде ниже в моей дочерней теме:

add_filter( 'style_loader_tag',  function($input) {
    var_dump($input);
    return $input;
}, 9999, 1 );

Я получаю отфильтрованную версию таблиц стилей, то есть я не могу переопределить фильтр, который запускается плагином.

...