Hello! 欢迎来到盒子萌!

40010102_wordPress主题_修复LoliMeowV12对于携带语言标记的markdown,渲染后代码块背景是黑色的问题


avatar
dspirit 2026-01-08 1

[TOC]

LoliMeowV12对于无语言标记的代码块渲染是正常的,所以不引入其他功能,故仅在LoliMeowV12的主题文件里,添加一段代码,将语言标记消除掉

在/wp-content/themes/lolimeow/functions.php的文件末尾添加以下内容:
// ==========================================
// 新增:修复带语言标记的代码块渲染为黑色的问题
add_filter('the_content','lolimeow_remove_language_class' );
function lolimeow_remove_language_class( $content ) {
    // 1. 移除 pre 和 code 标签中的 language-xxx 类名
    $content = preg_replace('/(<(?:pre|code)[^>]*class=["\'][^"\']*)language-[^"\'\s]+([^"\']*["\'])/i','$1$2',
        $content
    );
    
    // 2. 清理因为移除类名产生的多余空格(如 class="a  b" 变成 class="a b")
    $content = preg_replace('/(<(?:pre|code)[^>]*class=["\'])\s+/i','$1',
        $content
    );
    $content = preg_replace('/\s+(["\'])/','$1',
        $content
    );
    
    // 3. 清理彻底变空的 class 属性(如 class="")
    $content = preg_replace('/(<(?:pre|code)[^>]*)\s+class=["\']["\']/i','$1',
        $content
    );

    return $content;
}
// ==========================================

相关阅读