WordPress 5.7引入了基于過濾器的Robots API,可對robots meta標簽進行集中控制,另外還會默認向標簽添加max-image-preview:large指令。

1、什么是robots meta標簽的max-image-preview:large指令
使用robots meta標簽可利用特定于頁面的細粒度方法來控制應如何對單個頁面建立索引,索引展現在搜索結果中,并為用戶解決問題,此robots meta標簽一般是放在網站<head>標答內:
<!DOCTYPE html>
<html>
<head>
<meta name=”robots” content=”max-image-preview:large” />
</head>
robots meta標簽的max-image-preview:large指令作用是允許搜索引擎顯示該網頁的大圖像預覽,提高用戶瀏覽體驗,一般會默認將此指令添加到允許搜索引擎抓取的網站頁面。
2、robots meta標簽的wp_robots() 新函數
在WordPress 5.7中引入了一個輸出robots meta 標簽的函數wp_robots(),此函數自動與WordPress 5.7核心相關區域集成在一起,例如該函數已添加到wp_head功能中,所以robots meta標簽在網頁前端頁面可用,但于主題程序和插件程序就不建議使用了,但對于某些特殊情況,例如不使用前端網頁自定義模板,wp_head()可將新功能掛接到自定義過濾器中:
add_action( ‘my_custom_template_head’, ‘wp_robots’ );
3、如何連接到Robots API
該robots meta標簽屬性可以使用過濾wp_robots掛鉤,該wp_robots()函數完全基于過濾器,所以如果未將過濾器添加到wp_robots,則不會存在任何指令,將會省略整個robots eta標簽。
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還用于在某些特定屏幕上生成具有以下值的機器人元標記:
1)與以前的版本一樣,啟用“禁止搜索引擎為該站點編制索引”設置時,前端會在Robots元標記中包含一個 noindex,nofollow指令。在這種情況下,不會添加max-image-preview:large指令。
2)與以前的版本一樣,在Customizer預覽中,該網站在Robots元標記中包含 noindex 指令。
3)與以前的版本一樣,WordPress登錄頁面(wp-activate.php) 在Robots meta標簽以及標簽中包含 noindex,noarchive 指令,以及添加 <meta name=”referrer” content=”strict-origin-when-cross-origin” />。
4)與以前的版本一樣,在多站點網絡中,在新注冊用戶確認新創建站點的站點激活頁面(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核心有條件提供的各種單獨注入元標記。因此,以下函數已被棄用,不應再使用:
1)noindex() – 可以將新函數wp_robots_noindex()掛接到wp_robots過濾器中。
1)wp_no_robots() – 可以將新函數wp_robots_no_robots()掛接到wp_robots過濾器中。
1)wp_sensitive_page_meta() – 此函數放置了兩個標簽,因此有兩個單獨的替代品:
(1)對于noindex,noarchiverobots指令,可以將新函數 wp_robots_sensitive_page() 掛接到wp_robots過濾器中。
(2)對于額外的referrer標簽,可以調用新函數 wp_strict_cross_origin_referrer()。
