问题描述

当 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。