You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress Jevelin主题搜索纯文本提取问题:wp_strip_all_tags返回数组式字符串

解决Jevelin主题搜索结果中提取页面纯文本内容的问题

这种情况太常见了——Jevelin主题自带的页面构建器(不管是集成的第三方工具还是它自定义的Builder)会把页面内容以结构化的短代码/标记格式存在文章的post_content里,你直接调用的$content其实是这些未解析的原始构建数据,而非最终渲染后的页面文本,所以用wp_strip_all_tags处理后才会出现那些类似数组的奇怪字符串。

下面是具体的解决步骤和代码示例:

1. 先获取解析后的完整内容

首先得让主题把那些结构化标记转换成正常的HTML内容,我们可以通过WordPress的the_content过滤器实现,它会自动触发Jevelin构建器的解析逻辑:

// 获取经过主题解析后的完整内容
$processed_content = apply_filters('the_content', get_the_content());

2. 提取纯文本并截取指定长度

拿到解析后的内容后,去除所有HTML标签和残留短代码,再截取到200字符左右的长度,同时避免生硬截断单词:

// 去除所有标签和短代码,得到纯文本
$plain_text = wp_strip_all_tags($processed_content, true);

// 方式一:用wp_trim_words按单词数估算(25个单词大概对应200字符),省心又避免截断单词
$short_excerpt = wp_trim_words($plain_text, 25, '...');

// 方式二:精确控制字符数,同时处理单词截断问题
/*
if (strlen($plain_text) > 200) {
    // 先截取前200字符,再找到最后一个空格的位置截断
    $short_excerpt = substr($plain_text, 0, strrpos(substr($plain_text, 0, 200), ' ')) . '...';
} else {
    $short_excerpt = $plain_text;
}
*/

// 输出最终的纯文本摘要
echo $short_excerpt;

备用方案:手动解析短代码

如果上面的方法没生效,可能是the_content过滤器没触发Jevelin构建器的解析,这时候可以尝试手动解析短代码:

// 获取原始的post内容
$raw_content = get_post_field('post_content', get_the_ID());
// 手动解析所有短代码
$parsed_content = do_shortcode($raw_content);
// 后续步骤和上面一致
$plain_text = wp_strip_all_tags($parsed_content, true);
$short_excerpt = wp_trim_words($plain_text, 25, '...');
echo $short_excerpt;

注意事项

  • 确保这些代码在WordPress主循环(while (have_posts()) : the_post();)内部调用,这样get_the_content()才能正确获取当前搜索结果项的内容。
  • 如果搜索结果同时包含文章(post类型),可以用if (is_page()) { ... }给页面类型单独应用这个逻辑。

内容的提问来源于stack exchange,提问作者user5582011

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:22:07