问题描述
当 WordPress 3.6+中的 MP6 was a plugin 更改了管理员的身体类,并添加了一个”admin-mp6″ 类,可帮助我相应地调整我的插件。
现在用最新的 WordPress 的 Alpha,这个类被删除了。我知道,因为它是一个 alpha 版本的课程可能会回来,但我不知道是否有任何官方的”best practices”
最佳解决方案
虽然它不是具体的 MP6(我没有遵循它的发展) 和它的 CSS,对我来说,你的问题听起来像 「如何检查 WP 版本是否等于一个以上的一些功能被介绍」 。
所以我只是检查 $wp_version
全局的内容。如果是 3.8 功能,那么配备版本的东西就可以了。
另外从管理员的 body
类中快速查看 branch-3-7
类,这样可以将目标 branch-3-8
(但是不能有条件地定位为任何> = 3.8,因为这不是 CSS 的一部分) 。
次佳解决方案
我也喜欢一个 CSS-only 变种。不幸的是,这不完全是可能的。我采取的路线是 CSS 和 PHP 的混合。
首先,我们使用 PHP 来检测安装的 WordPress 的版本,以及是否安装了 MP6 。这是很容易的使用 MP6
常量由插件和 $wp_version
全局定义由 Rarst 建议。一旦我们知道我们生活在一个 MP6 世界,我们添加了我们自己的身体类。我选择使用类名”flaticons”:
/**
* Filter body classes to detect MP6 or WordPress 3.8 so we can substitute the correct styles.
*
* @param array $classes
*
* @global $wp_version
*
* @return array
*/
function flaticons_body_class( $classes ) {
global $wp_version;
if ( ( defined( 'MP6' ) && MP6 ) || version_compare( $wp_version, '3.8', '>=' ) ) {
$classes[] = 'flaticons';
}
return $classes;
}
现在,在我们以前使用.admin-mp6
,.admin-color-mp6
或.mp6
选择器的 CSS 中,我们可以使用.flaticons
。
这将与旧版本的 MP6 和 WordPress 3.8+一起发布。不是最佳的,而是一个坚实的 future-proof 解决方案。
第三种解决方案
Andrew Nacin 发布了一些”offical” 方法来处理这个主题 here
CSS 唯一的变体应该使用 branch-3-x 类来定位 3.8 之前的版本,默认值应该应用到所有即将推出的版本,所以你不必关心进一步的版本:
.branch-3-6 .some-selector,
.branch-3-7 .some-selector {
/* some rules go here for 3.6 and 3.7 */
}
.some-selector {
/* 3.8+ rules go here */
}
Read more about 这个话题在 make.wordpress.org 页面上
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。