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

标签

发表评论