我怎样才能瞄准带有css的WordPress 3.8新界面MP6呢?

时间:2013-11-17 作者:Xaver

什么时候MP6 was a plugin 在WordPress 3.6+中,它更改了admin的body类,并添加了一个“admin-mp6”类,它可以帮助我相应地设置插件的样式。

现在使用WordPress 3.8的最新Alpha,该类被删除。我知道,因为这是alpha版本,课程可能会回来,但我想知道是否有任何官方的“最佳实践”

3 个回复
最合适的回答,由SO网友:Xaver 整理而成

Andrew Nacin 发表了一些关于这个话题的“官方”方法here

仅CSS的变体应使用branch-3-x类来针对版本before 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 这个话题正在讨论中。wordpress。组织页面

SO网友:Rarst

虽然它对MP6(我不关注它的发展)及其CSS不是特别的,但对我来说,你的问题听起来像是“如何检查WP版本是否大于引入的某个功能?”。

所以我只想检查$wp_version 全球的如果它是3.8的功能,那么任何适合的版本都有它。

同样来自快速查看body admin中的类有branch-3-7 类,从而可以branch-3-8 (但是,不能有条件地将目标定为>=3.8的任何内容,因为CSS不会这样做)。

SO网友:EAMann

我也更喜欢只使用CSS的变体。不幸的是,这不完全可能。我所走的路线是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;
}
现在,在我们以前使用的CSS中.admin-mp6, .admin-color-mp6, 或.mp6 选择器,我们可以使用.flaticons 相反

这将适用于旧版本的MP6和WordPress 3.8+版本。不是最优的,而是可靠的、经得起未来考验的解决方案。

结束