WordPress 5.4 如何增强对网站favicon.ico图标的处理?
WordPress 3.0 引入了wp_favicon_request()来避免因每个favicon请求返回404错误页面而导致性能下降。尽管该函数可以按预期工作,但它没有提供足够的灵活性。
从WordPress 5.4开始,主题和插件作者可以使用以下逻辑更加灵活地管理favicon请求:
如果在外观-自定义中设置了“网站”图标,则将/favicon.ico请求重定向到该图标。
否则,请使用WordPress Logo作为默认图标。
如果/favicon.ico存在物理文件,则什么也不用做,让服务器处理该请求。
仅当WordPress安装在根目录中时,此逻辑才起作用。
通过这些更改,/favicon.ico现在的处理与/robots.txt请求更加一致。
倡萌建议:将你的 favicon.ico 图标上传到网站根目录,也就是 wp-config.php 文件所在的目录,一般就不会有什么问题。
新函数和钩子
WordPress 5.4引入了许多新功能和用于图标图标处理的钩子:
is_favicon()条件标签。类似于is_robots()。
do_favicon在模板加载器中使用的操作钩子。当模板加载程序确定网站图标请求时,将触发此钩子。和do_robots类似 。
do_favicon()功能,默认情况下已与上述操作挂钩一起,和do_robots()类似。
do_faviconico使插件和主题可以覆盖默认行为。显示收藏夹文件时将触发此挂钩。和动作do_robotstxt类似。
使用上述逻辑,使用以下代码do_favicon重定向到“网站图标”(如果存在),或重定向到WordPress Logo作为默认图标:
function do_favicon() {
/**
* Fires when serving the favicon.ico file.
*
* @since 5.4.0
*/
do_action( ‘do_faviconico’ );
wp_redirect( get_site_icon_url( 32, admin_url( ‘images/w-logo-blue.png’ ) ) );
exit;
}
主题和插件开发人员可以使用do_faviconico钩子来覆盖默认行为。
弃用 wp_favicon_request()
wp_favicon_request()现在已弃用,请使用do_favicon()。