前言
wordpress建站,折腾网站小图标时遇到一些小问题,记录备忘.
结论: 对于wordpress, 把favicon.ico文件直接放在服务器网站根目录下就可以生效 (wordpress版本6.3.2), 不需要做其它额外设置
折腾记实
- 正常是favicon.ico 图标文件,直接放在服务器网站根目录下(centos + apach, 目录默认是 /var/www/html)。
- 刚放上去的时候,从client端上看没效果,看网上有文章说,要修改header.php, 但我用的这个主题是没有header.php的。
- 从index.php出发, 找到一个wp-blog-header.php, 从中找到一个template-loader.php, 看到里面有这么一段:
觉得有希望,但是查了wp-includes/functions.php文件,里面并没有do_favicon这个函数
查了wordpress官网,这函数的定义如下:
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, includes_url( 'images/w-logo-blue-white-bg.png' ) ) );
exit;
}
加到functions.php中去,悲剧了,直接报500错误。
删除后就又正常了。说明这个办法行不通。
-
试过曲线救国,用想要的logo替换 wp-includes/images/w-logo-blue-white-bg.png这个文件,也没效果。
-
最后无意间发现,换了chrome浏览器,居然图标是新的了。此时开始怀疑是浏览器缓存的问题(之前一直是用的Edge)。
-
清除浏览器小图标缓存真的是费力。最终发现有效的办法是删除缓存文件
chrome:C:\Users\你的电脑用户名\AppData\Local\Google\Chrome\User Data\Default
Edge:C:\Users\你的电脑用户名\AppData\Local\Microsoft\Edge\User Data\Default
在这些目录下,找到favicons文件, 直接删除
-
清除好浏览器缓存以后,实测下来,发现把favicon.ico文件直接放上去就可以生效 (wordpress版本6.3.2), 不需要做其它额外设置。
更优雅的办法
新版的wordpress,在主题Customize --> Site Identity下有Site Icon选项 (有些主题在Customize -->Header --> Site Identity下)
有趣的是,在一个主题下设置了site icon, 即使再切换到其它主题,site icon仍然得以保留。
利用这个特性,可以轻松设置网站小图标.
而且,对于多站点(MultiSite), 各个网站可以设置不同的Site Icon, 非常方便。
- 看了一下后台数据库,发现wordpress并不是通过修改header.php或其它文件,而是在post表中插入了两条记录来实现的。
-