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()
。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。