如何在代码包装器中添加自定义类属性?

时间:2020-05-07 作者:ooneland

默认情况下,发布代码后,帖子显示如下html,

<pre class="wp-block-code">
    <code>
        some codes here
    </code>
</pre>
我有很多带有代码的帖子,不想一一编辑。如何为所有帖子全局添加自定义类属性?让它看起来像这样

<pre class="wp-block-code custom-class">
    <code>
        some codes here
    </code>
</pre>
提前谢谢。

1 个回复
最合适的回答,由SO网友:Aboelabbas 整理而成

要立即将自定义类添加到旧帖子中,可以通过“the_content“筛选和使用preg_replacepreg_replace_callback 函数进行正则表达式替换。

工作示例:

add_filter( \'the_content\', function( $content ){

    // Don\'t do anything if we\'re not in a single post
    if(! is_singular()){
        return $content;
    }

    $customClass = \'custom-class\';

    return preg_replace_callback(
        \'/<pre([^>]+)class="([^"]+)"/i\',
        function( $matches )use( $customClass ){
            return \'<pre\' . $matches[1] . \'class="\' . trim($matches[2]) . \' \' . $customClass . \'"\';
        },
        $content
    );

} );