Loading
0

WordPress 5.4 增强对网站favicon.ico图标的处理

WordPress 3.0 引入了wp_favicon_request()来避免因每个favicon请求返回404错误页面而导致性能下降。尽管该函数可以按预期工作,但它没有提供足够的灵活性。

WordPress 5.4 增强对网站favicon.ico图标的处理

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()