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

通过类名抓取Div文本并创建短代码用于搜索结果页展示

解决WordPress中抓取avia-textblock内容生成自定义摘要的问题

首先提个小细节:你给出的HTML里class写成了aria-textblock,应该是avia-textblock(这是Avada主题里常用的文本块类),先修正这个小笔误~

接下来我帮你完善functions.php里的代码,实现从目标div提取文本、生成短代码,并且把这个自定义摘要加到搜索结果页的功能:

1. 完整的短代码函数实现

这个函数会抓取当前页面/post中所有avia-textblock类的div文本,合并成自定义摘要,同时处理HTML解析的兼容性问题:

function get_new_excerpt() {
    // 获取当前文章/页面的内容
    $post_content = get_post_field('post_content', get_the_ID());
    if (empty($post_content)) return '';

    // 初始化DOM文档,抑制HTML解析警告(避免WordPress内容里的不规范HTML报错)
    $dom = new DOMDocument();
    @$dom->loadHTML(mb_convert_encoding($post_content, 'HTML-ENTITIES', 'UTF-8'));

    // 使用DOMXPath精准定位class为avia-textblock的div
    $xpath = new DOMXPath($dom);
    $text_blocks = $xpath->query("//div[contains(@class, 'avia-textblock')]");

    $excerpt_text = '';
    if ($text_blocks->length > 0) {
        foreach ($text_blocks as $block) {
            // 提取div内的纯文本,去掉多余的空格和换行
            $excerpt_text .= trim($block->textContent) . ' ';
        }
        // 可以根据需要截断摘要长度,比如保留前40个词
        $excerpt_text = wp_trim_words($excerpt_text, 40, '...');
    }

    return $excerpt_text;
}
// 注册短代码,在页面/post里用[custom_excerpt]调用
add_shortcode('custom_excerpt', 'get_new_excerpt');

2. 将自定义摘要添加到搜索结果页

如果你想让搜索结果页显示这个自定义摘要(替代默认的文章摘要),可以添加下面的钩子函数:

function replace_search_excerpt_with_custom($excerpt) {
    // 只在搜索结果页生效
    if (is_search()) {
        return get_new_excerpt();
    }
    // 其他页面保持默认摘要
    return $excerpt;
}
add_filter('the_excerpt', 'replace_search_excerpt_with_custom');

关键细节说明

  • 为什么用DOMXPath?比起用getElementsByTagName('div')再循环判断class,XPath可以直接定位目标元素,代码更简洁高效
  • @$dom->loadHTML(...)前面的@是为了抑制DOM解析时的警告,因为WordPress编辑器生成的内容可能有不规范的HTML标签
  • mb_convert_encoding是为了处理中文等非ASCII字符的编码问题,避免乱码
  • wp_trim_words是WordPress内置函数,用来安全地截断文本并添加省略号,比自己写截断逻辑更可靠

使用方法

  • 在页面或文章编辑器里直接插入短代码[custom_excerpt],就能显示提取的avia-textblock内容摘要
  • 搜索结果页会自动替换成这个自定义摘要(如果添加了第二个钩子函数)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:52:43