WordPress 自动添加文章关键词与描述及搜索高亮优化
本文将详解如何通过代码自动化WordPress的SEO Meta标签,包括根据页面类型动态生成关键词和描述,以及在搜索结果中实现关键词高亮显示,无需手动为每篇文章设置。
结果或目标
通过自动化手段处理WordPress站点的元数据,解决手动为每篇文章添加关键字和描述的低效问题。目标是让搜索引擎更好地索引内容,并在搜索结果显示中突出用户查询词。
准备条件
具备WordPress站点后台编辑权限。
访问主题文件目录,找到并备份
functions.php文件。使用支持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优化的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









