W3 Total Cache 是个很好的 WordPress 缓存插件,提供页面数据库等等的硬盘缓存和 memcached 缓存,比 WP Super Cache 不知道高到哪里去了(笑,然而这个极好的插件却。。

TMD 在侧边栏上的图标和其他的 没!对!齐!

还 TM 是彩!色!的!Fucking Colorfuuuuul !

W3 看看这破玩意儿,卧槽这尼玛果断不能忍啊 i_f33

忍着不适将其配置好后马上开始着手替换这破图标。第一步自然是搜索引擎大法,遗憾的是都没有人写类似的文章。。难道用 W3TC 的强迫症只有窝这么一个吗。没办法了,自己动手,丰衣足食。

想到的第一个办法是替换图标源文件。审查元素发现是在 w3-total-cache/pub/img/w3tc-sprite.png

包含了 mouseover 和 mouseout 的两种图标,还有个 w3tc-sprite-retina.png 适用于高分辨率。。20150711215742 尼玛这搞个 dio 啊搞起来麻烦死了啊混蛋,还是用从代码下手吧

把插件下载下来,shell 下执行 find .|xargs grep -ri “w3tc-sprite.png” -l / 坑1 /,定位到引用此图标的文件 ./lib/W3/Plugin/TotalCacheAdmin.php ,再定位至

#toplevel_page_w3tc_dashboard .wp-menu-image { background: url(<?php echo plugins_url(‘w3-total-cache/pub/img/w3tc-sprite.png’)?>) no-repeat 0 -32px !important; }

还有一大段差不多的代码窝就不贴了,将其注释掉(聪明点,别一大块注释,不然会有奇怪的错误

这段代码是自定义当添加侧边栏菜单的函数

add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );

没有指定 $icon_url 时的 CSS 。具体原文在这里

注释掉保存后刷新页面可以看到侧边栏的骰子图标不见了。接下来就要自定义图标了。这里窝用的是 WordPress 中的图标字体,具体都有什么可以看这里。窝用了 dashicons-admin-generic 的齿轮图标

gear

具体使用方法就是在 $icon_url 参数位置填上 ‘dashicons-admin-generic’ //坑2

再次查找使用了 add_menu_page 函数的文件 find .|xargs grep -ri “add_menu_page” -l ,可以看到是在 ./lib/W3/Menus.php 里调用的,调用代码是这样的:

add_menu_page((‘Performance’, ‘w3-total-cache’), (‘Performance’, ‘w3-total-cache’), ‘manage_options’, ‘w3tc_dashboard’, ‘’, ‘div’);

将其替换成这样:

add_menu_page((‘Performance’, ‘w3-total-cache’), (‘Performance’, ‘w3-total-cache’), ‘manage_options’, ‘w3tc_dashboard’,’’,’dashicons-admin-generic’, ‘div’);

坑2注意,WP 官方给的函数中参数有 7 个,但是 W3TC 中只用了 6 个。咱当时将那个空引号替换后发现没生效还以为是窝哪里搞错了又到处寻找解决方法。。。(扶额 ,估计那个空引号是 $function 吧,窝具体也没深入了解

总之将其这样替换后,图标问题是已经完美解决了 20150329080245

dekita 唯一的问题就是不知道为啥图标到最后去了。。

难道是 css 定位出问题了。。嘛,能用就行了 i_f25 总算了却窝心头一桩大事

关于坑一:

吗的窝本来不知道用 find 一个文件一个文件翻过去找的窝好苦啊 i_f33

除另有声明外,本博客文章均采用 知识共享(Creative Commons) 署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议 进行许可。