問題描述

當 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。