让首页摘要不显示代码

Auth:老郭       Date:2025/03/12       Cat:网络       Word:共 218 个字符/单词       Views:4

前几天,老郭调整博客首页摘要格式,让博客的首页看起来美观了不少。但是,对于一些内容存在代码的文章,摘要并不会屏蔽这些代码,而是把代码的内容也显示出来。这样的话,对于整体的美观度和阅读的感受还是有一定的影响的。

让首页摘要不显示代码 - 第1张图片

造成这一情况的原因是之前的自定义摘要函数custom_​excerpt_​with_​paragraphs_​filter没有没有排除代码,那么就需要修改functions.php文件里的custom_​excerpt_​with_​paragraphs_​filter函数,添加代码块过滤逻辑。找到之前添加的custom_​excerpt_​with_​paragraphs_​filter函数,替换为以下内容:

function custom_​excerpt_​with_​paragraphs_​filter( $excerpt ) {
    global $post;
    $content = get_​the_​content();
    $content = strip_​shortcodes( $content );
    $content = apply_​filters( 'the_​content', $content ); // 保留格式
    $content = str_​replace( ']]>', ']]>', $content );

    // 移除代码块
    $content = preg_​replace( [
        '/<pre.*?>.*?<\/pre>/is',    // 移除 <pre> 块
        '/<code.*?>.*?<\/code>/is',  // 移除 <code> 块
        '/<script.*?>.*?<\/script>/is', // 移除 <script> 块
        '/<style.*?>.*?<\/style>/is',   // 移除 <style> 块
        '/<\?php.*?\?>/is',          // 移除 PHP 代码
    ], '', $content );

    // 处理段落分割(兼容单换行和双换行)
    $paragraphs = preg_​split( "/\n{1,}/", $content );
    $excerpt = '';
    $char_​count = 0;
    $max_​chars = 260; // 你的长度限制

    foreach ( $paragraphs as $paragraph ) {
        if ( empty( trim( $paragraph ) ) ) continue;
        $paragraph_​clean = strip_​tags( $paragraph, '<p>' ); // 保留 <p> 标签
        $chars = mb_​strlen( strip_​tags( $paragraph_​clean ), 'UTF-8' );
        if ( $char_​count + $chars <= $max_​chars ) {
            $excerpt .= '<p>' . trim( $paragraph_​clean ) . '</p>';
            $char_​count += $chars;
        } else {
            $remaining_​chars = $max_​chars - $char_​count;
            if ( $remaining_​chars > 0 ) {
                $excerpt .= '<p>' . mb_​substr( strip_​tags( $paragraph ), 0, $remaining_​chars, 'UTF-8' ) . '...</p>';
            }
            break;
        }
    }

    return $excerpt;
}
add_​filter( 'the_​excerpt', 'custom_​excerpt_​with_​paragraphs_​filter', 1000 );

保存后刷新页面,首页摘要就不会再显示代码的内容了。

⚑Tags:      

老郭博客文章均为原创,本文地址 https://lgbk.cn/archives/2610.html,转载请以链接形式注明出处。

作者:

《让首页摘要不显示代码》留言数:0

发表留言