WordPress 5.7引入了基于過(guò)濾器的Robots API,可對(duì)robots meta標(biāo)簽進(jìn)行集中控制,另外還會(huì)默認(rèn)向標(biāo)簽添加max-image-preview:large指令。

1、什么是robots meta標(biāo)簽的max-image-preview:large指令
使用robots meta標(biāo)簽可利用特定于頁(yè)面的細(xì)粒度方法來(lái)控制應(yīng)如何對(duì)單個(gè)頁(yè)面建立索引,索引展現(xiàn)在搜索結(jié)果中,并為用戶解決問(wèn)題,此robots meta標(biāo)簽一般是放在網(wǎng)站<head>標(biāo)答內(nèi):
<!DOCTYPE html>
<html>
<head>
<meta name=”robots” content=”max-image-preview:large” />
</head>
robots meta標(biāo)簽的max-image-preview:large指令作用是允許搜索引擎顯示該網(wǎng)頁(yè)的大圖像預(yù)覽,提高用戶瀏覽體驗(yàn),一般會(huì)默認(rèn)將此指令添加到允許搜索引擎抓取的網(wǎng)站頁(yè)面。
2、robots meta標(biāo)簽的wp_robots() 新函數(shù)
在WordPress 5.7中引入了一個(gè)輸出robots meta 標(biāo)簽的函數(shù)wp_robots(),此函數(shù)自動(dòng)與WordPress 5.7核心相關(guān)區(qū)域集成在一起,例如該函數(shù)已添加到wp_head功能中,所以robots meta標(biāo)簽在網(wǎng)頁(yè)前端頁(yè)面可用,但于主題程序和插件程序就不建議使用了,但對(duì)于某些特殊情況,例如不使用前端網(wǎng)頁(yè)自定義模板,wp_head()可將新功能掛接到自定義過(guò)濾器中:
add_action( ‘my_custom_template_head’, ‘wp_robots’ );
3、如何連接到Robots API
該robots meta標(biāo)簽屬性可以使用過(guò)濾wp_robots掛鉤,該wp_robots()函數(shù)完全基于過(guò)濾器,所以如果未將過(guò)濾器添加到wp_robots,則不會(huì)存在任何指令,將會(huì)省略整個(gè)robots eta標(biāo)簽。
robots鼓勵(lì)添加自己的元標(biāo)記的插件開發(fā)人員切換到使用新的Robots API,將其自定義指令連接到wp_robots過(guò)濾器中。
默認(rèn)的 robots meta標(biāo)記值
如上所述,對(duì)于希望由搜索引擎建立索引的WordPress網(wǎng)站,robots現(xiàn)在默認(rèn)情況下將meta標(biāo)記包括在wp_head以下內(nèi)容中:
<meta name=”robots” content=”max-image-preview:large” />
開發(fā)人員可以使用以下PHP代碼段禁用此指令:
remove_filter( ‘wp_robots’, ‘wp_robots_max_image_preview_large’ );
Robots API還用于在某些特定屏幕上生成具有以下值的機(jī)器人元標(biāo)記:
1)與以前的版本一樣,啟用“禁止搜索引擎為該站點(diǎn)編制索引”設(shè)置時(shí),前端會(huì)在Robots元標(biāo)記中包含一個(gè) noindex,nofollow指令。在這種情況下,不會(huì)添加max-image-preview:large指令。
2)與以前的版本一樣,在Customizer預(yù)覽中,該網(wǎng)站在Robots元標(biāo)記中包含 noindex 指令。
3)與以前的版本一樣,WordPress登錄頁(yè)面(wp-activate.php) 在Robots meta標(biāo)簽以及標(biāo)簽中包含 noindex,noarchive 指令,以及添加 <meta name=”referrer” content=”strict-origin-when-cross-origin” />。
4)與以前的版本一樣,在多站點(diǎn)網(wǎng)絡(luò)中,在新注冊(cè)用戶確認(rèn)新創(chuàng)建站點(diǎn)的站點(diǎn)激活頁(yè)面(wp-activate.php)中,在 Robots meta標(biāo)記中添加 noindex,noarchive 指令,以及添加<meta name=”referrer” content=”strict-origin-when-cross-origin” /> 。
向robots meta標(biāo)記添加自定義值
wp_robots過(guò)濾器可以接受鍵值對(duì)的數(shù)組。要將自定義值添加到robots meta標(biāo)記,請(qǐng)使用以下過(guò)濾器:
function wporg_wp_robots_add_follow( $robots ) {
$robots[‘follow’] = true;
return $robots;
}
add_filter( ‘wp_robots’, ‘wporg_wp_robots_add_follow’ );
它將在所有現(xiàn)有值之外添加follow值。鑒于已經(jīng)默認(rèn)添加了max-image-preview:large,此代碼段將生成以下內(nèi)容:
<meta name=”robots” content=”max-image-preview:large, follow” />
也可以取消設(shè)置現(xiàn)有值:
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’ );
不推薦使用的函數(shù)
通過(guò)wp_robots過(guò)濾器控制的新機(jī)器人API取代robots了,WordPress核心有條件提供的各種單獨(dú)注入元標(biāo)記。因此,以下函數(shù)已被棄用,不應(yīng)再使用:
1)noindex() – 可以將新函數(shù)wp_robots_noindex()掛接到wp_robots過(guò)濾器中。
1)wp_no_robots() – 可以將新函數(shù)wp_robots_no_robots()掛接到wp_robots過(guò)濾器中。
1)wp_sensitive_page_meta() – 此函數(shù)放置了兩個(gè)標(biāo)簽,因此有兩個(gè)單獨(dú)的替代品:
(1)對(duì)于noindex,noarchiverobots指令,可以將新函數(shù) wp_robots_sensitive_page() 掛接到wp_robots過(guò)濾器中。
(2)對(duì)于額外的referrer標(biāo)簽,可以調(diào)用新函數(shù) wp_strict_cross_origin_referrer()。
