覆盖子主题中的插件触发的wordpress操作

时间:2019-07-09 14:44:23

标签: wordpress plugins filter action

我在wordpress项目中使用了一个插件,因为他们使用style_loader_tag过滤器来格式化样式表标签,通过使用此过滤器,他们删除了样式表ID,如下所示:

<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 );

我得到了样式表的过滤出版本,也就是说,我无法覆盖由插件触发的过滤器。

0 个答案:

没有答案