WordPress 5.7 引入了基于过滤器的Robots API,可对robots
meta 标签进行集中控制 。此外,默认情况下还会向标签添加 max-image-preview:large
指令。
通过robots
meta标签,您可以利用特定于页面的细粒度方法来控制应如何对单个页面建立索引,并在搜索引擎结果中提供给用户。此meta标记通常放在给定页面的<head>
部分中:
<!DOCTYPE
html>
<html>
<head>
<meta
name="robots"
content="max-image-preview:large"
/>
</head>
该max-image-preview:large
指令允许搜索引擎显示该站点的大图像预览,从而增强用户体验。现在,默认情况下会将指令添加到希望由搜索引擎建立索引的网站。
wp_robots() 新函数
WP 5.7 引入了一个输出 robots
meta 标签的函数 wp_robots()
。该函数会自动与WordPress核心中的相关区域集成在一起,例如,该函数已添加到 wp_head
功能中,因此 robots
meta标签在前端可用。插件和主题通常不应该手动调用此函数。但是对于特殊情况,例如不使用的自定义前端模板,wp_head()
可以将新功能挂接到自定义过滤器中:
add_action( 'my_custom_template_head', 'wp_robots'
);
如何连接到Robots API
该robots
meta标签属性可以使用过滤wp_robots
挂钩。该 wp_robots()
函数完全基于过滤器,因此,如果未将过滤器添加到 wp_robots
,则不会存在任何指令,因此将省略整个 robots
meta标签。
robots
鼓励添加自己的元标记的插件开发人员切换到使用新的Robots API,将其自定义指令连接到wp_robots
过滤器中。
默认的 robots
meta标记值
如上所述,对于希望由搜索引擎建立索引的WordPress网站,robots
现在默认情况下将meta标记包括在wp_head
以下内容中:
<meta
name="robots"
content="max-image-preview:large"
/>
开发人员可以使用以下PHP代码段禁用此指令:
remove_filter( 'wp_robots', 'wp_robots_max_image_preview_large'
);
Robots API还用于在某些特定屏幕上生成具有以下值的机器人元标记:
- 与以前的版本一样,启用“禁止搜索引擎为该站点编制索引”设置时,前端会在Robots元标记中包含一个
noindex,nofollow
指令。在这种情况下,不会添加max-image-preview:large
指令。 - 与以前的版本一样,在Customizer预览中,该网站在Robots元标记中包含
noindex
指令。 - 与以前的版本一样,WordPress登录页面(
wp-activate.php
) 在Robots meta标签以及标签中包含noindex,noarchive
指令,以及添加<meta name="referrer" content="strict-origin-when-cross-origin" />
。 - 与以前的版本一样,在多站点网络中,在新注册用户确认新创建站点的站点激活页面(wp-activate.php)中,在 Robots meta标记中添加
noindex,noarchive
指令,以及添加<meta name="referrer" content="strict-origin-when-cross-origin" />
。
向robots
meta标记添加自定义值
wp_robots
过滤器可以接受 键-值 对的数组。要将自定义值添加到robots
meta标记,请使用以下过滤器:
function wporg_wp_robots_add_follow( $robots ) {
$robots['follow'] = true;
return $robots;
}
add_filter( 'wp_robots', 'wporg_wp_robots_add_follow' );
它将在所有现有值之外添加 follow
值。鉴于已经默认添加了max-image-preview:large
,此代码段将生成以下内容:
<meta
name="robots"
content="max-image-preview:large, follow"
/>
也可以取消设置现有值:
function wporg_wp_robots_add_follow( $robots ) {
unset( $robots['max-image-preview'] );
$robots['follow'] = true;
return $robots;
}
add_filter( 'wp_robots', 'wporg_wp_robots_add_follow' );
不推荐使用的函数
通过wp_robots
过滤器控制的新机器人API取代robots
了WordPress核心有条件提供的各种单独注入的元标记。因此,以下函数已被弃用,不应再使用:
noindex()
– 可以将新函数wp_robots_noindex()
挂接到wp_robots
过滤器中。wp_no_robots()
– 可以将新函数wp_robots_no_robots()
挂接到wp_robots
过滤器中。wp_sensitive_page_meta()
– 此函数放置了两个标签,因此有两个单独的替代品:- 对于
noindex,noarchive
robots指令,可以将新函数wp_robots_sensitive_page()
挂接到wp_robots
过滤器中。 - 对于额外的
referrer
标签,可以调用新函数wp_strict_cross_origin_referrer()
。
- 对于
要了解更多详情,请查看 #51511