WordPress 自动添加文章关键词与描述及搜索高亮优化

Nora
Nora
发布时间:2026-10-14| 6人浏览过
原创

本文将详解如何通过代码自动化WordPress的SEO Meta标签,包括根据页面类型动态生成关键词和描述,以及在搜索结果中实现关键词高亮显示,无需手动为每篇文章设置。

结果或目标

通过自动化手段处理WordPress站点的元数据,解决手动为每篇文章添加关键字和描述的低效问题。目标是让搜索引擎更好地索引内容,并在搜索结果显示中突出用户查询词。

准备条件

  1. 具备WordPress站点后台编辑权限。

  2. 访问主题文件目录,找到并备份 functions.php 文件。

  3. 使用支持PHP语法的文本编辑器。

第1步:自动生成关键字与页面描述

此步骤通过挂钩 wp_head 动作,在页面头部输出自定义的 meta 标签。

1. 定义关键字生成函数

复制以下代码至 functions.php 末尾:

add_action('wp_head', 'wp_keywords');
add_action('wp_head', 'wp_description');

function wp_keywords() {
    global $s, $post;
    $keywords = '';
    if (is_single()) { // 文章页:标签 + 分类名称
        if (get_the_tags($post->ID)) {
            foreach (get_the_tags($post->ID) as $tag)
                $keywords .= $tag->name . ', ';
        }
        foreach (get_the_category($post->ID) as $category)
            $keywords .= $category->cat_name . ', ';
        $keywords = substr_replace($keywords, '', -2);
    } elseif (is_home()) {
        $keywords = '我是主页关键词'; // 自定义主页关键词
    } elseif (is_tag()) {
        $keywords = single_tag_title('', false);
    } elseif (is_category()) {
        $keywords = single_cat_title('', false);
    } elseif (is_search()) {
        $keywords = esc_html($s, 1);
    } else {
        $keywords = trim(wp_title('', false));
    }
    if ($keywords) {
        echo "<meta name=\"keywords\" content=\"$keywords\" />\n";
    }
}

function wp_description() {
    global $s, $post;
    $description = '';
    $blog_name = get_bloginfo('name');
    if (is_singular()) {
        if (!empty($post->post_excerpt)) {
            $text = $post->post_excerpt;
        } else {
            $text = $post->post_content;
        }
        $description = trim(str_replace(array("\r\n", "\r", "\n", " ", " " ), " ", str_replace('"', "'", strip_tags($text))));
        if (!$description)
            $description = $blog_name . '-' . trim(wp_title('', false));
    } elseif (is_home()) {
        $description = $blog_name . '-' . get_bloginfo('description') . '- 首页要显示的描述';
    } elseif (is_tag()) {
        $description = $blog_name . "有关 '" . single_tag_title('', false) . "' 的文章";
    } elseif (is_category()) {
        $description = $blog_name . "有关 '" . single_cat_title('', false) . "' 的文章";
    } elseif (is_archive()) {
        $description = $blog_name . "在: '" . trim(wp_title('', false)) . "' 的文章";
    } elseif (is_search()) {
        $description = $blog_name . ": '" . esc_html($s, 1) . "' 的搜索结果";
    } else {
        $description = $blog_name . "有关 '" . trim(wp_title('', false)) . "' 的文章";
    }
    $description = mb_substr($description, 0, 220, 'utf-8') . '..';
    echo "<meta name=\"description\" content=\"$description\" />\n";
}
  • 目的:根据页面类型(文章、首页、标签、分类等)动态生成 <meta> 标签。
  • 入口:主题 functions.php 文件。
  • 关键逻辑:
    - 文章页优先使用设置的摘要,无摘要则截取正文前220字。
    - 列表页/聚合页利用页面标题构造描述。
  • 完成状态:查看网页源码,发现 <head> 中包含对应的 keywords 和 description 标签。

第2步:搜索结果关键词高亮

此步骤通过过滤器修饰搜索结果中的摘录和标题,使用 <strong> 标签包裹用户搜索的词汇。

function wps_highlight_results($text){
    if(is_search()){
        $sr = get_query_var('s');
        $keys = explode(" ",$sr);
        $text = preg_replace('/('.implode('|', $keys) .')/iu', '<strong>$1</strong>', $text);
    }
    return $text;
}
add_filter('the_excerpt', 'wps_highlight_results');
add_filter('the_title', 'wps_highlight_results');
  • 操作说明:将上述代码追加至 functions.php 文件中。
  • 执行动作:监听 the_excerpt 和 the_title 过滤钩子。
  • 参数解释:get_query_var('s') 获取用户搜索词,按空格拆分后重组正则表达式进行替换。
  • 注意:原代码中正则替换组建议使用 $1 而非 $sr,以确保仅包裹匹配的单词部分。此处已修正为更标准的写法 '<strong>$1</strong>'。

简要总结

以上就是通过自定义PHP代码实现WordPress文章自动关键词、描述及搜索高亮的详细内容,更多关于WordPress SEO优化的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。