WordPress中如何显示剔除摘要后的文章内容并设置字数
WordPress 剔除摘要后显示剩余内容并限制字数方案
核心逻辑
先获取文章的摘要与完整内容,通过字符串处理移除内容中的摘要部分,再对剩余内容做指定字数的截取,同时处理空白字符、格式标签等可能导致匹配失败的问题。
具体实现代码
可以直接在模板文件中使用以下代码,或者将自定义函数添加到主题的functions.php中复用:
<?php // 获取纯文本格式的摘要与完整内容(避免HTML标签干扰匹配) $excerpt = trim(strip_tags(get_the_excerpt())); $full_content = trim(strip_tags(get_the_content())); // 统一处理空白字符,确保匹配准确性 $excerpt_clean = preg_replace('/\s+/', ' ', $excerpt); $content_clean = preg_replace('/\s+/', ' ', $full_content); // 定位摘要在内容中的位置并截取剩余部分 $excerpt_position = strpos($content_clean, $excerpt_clean); if ($excerpt_position !== false) { $remaining_content = substr($content_clean, $excerpt_position + strlen($excerpt_clean)); $remaining_content = trim($remaining_content); } else { // 若摘要未在内容中匹配到,直接使用完整内容做后续处理 $remaining_content = $content_clean; } // 设置字数限制(示例为150字),自动添加省略号 $word_limit = 150; $trimmed_content = wp_trim_words($remaining_content, $word_limit, '...'); // 输出最终处理后的内容 echo $trimmed_content; ?>
注意事项
- 使用
strip_tags()清理HTML标签,避免因摘要或内容含标签导致匹配失败; wp_trim_words()是WordPress内置函数,会自动处理标签闭合问题,比原生substr更适合处理文章内容;- 如果是手动编辑的摘要(与内容开头文本不匹配),上述代码会触发
else分支,直接使用完整内容做字数限制,可根据需求调整分支逻辑。
内容的提问来源于stack exchange,提问作者Ishita Ray
相关产品推荐
相关产品推荐

