Làm cách nào tôi có thể nhắm mục tiêu WordPress 3.8 MP6 giao diện mới với CSS?


7

Khi MP6 là một plugin trong WordPress 3.6+, nó thay đổi lớp cơ thể của quản trị viên và thêm một lớp "admin-mp6" giúp tôi định kiểu plugin phù hợp.

Bây giờ với Alpha mới nhất của WordPress 3.8, lớp đã bị xóa. Tôi biết vì đây là phiên bản alpha, lớp có thể quay lại nhưng tôi tự hỏi liệu có bất kỳ "thực hành tốt nhất" chính thức nào không


Điều này có thể hữu ích - make.wordpress.org/ui/2013/11/19/ Khăn
Elliott

Câu trả lời:


4

Mặc dù nó không dành riêng cho MP6 (tôi không theo dõi sự phát triển của nó) và CSS của nó, nhưng với tôi câu hỏi của bạn nghe có vẻ như "làm thế nào để kiểm tra phiên bản WP có bằng với một tính năng nào đó được giới thiệu không?".

Vì vậy, tôi sẽ chỉ kiểm tra nội dung của $wp_versiontoàn cầu. Nếu đó là tính năng 3,8 thì bất cứ thứ gì có phiên bản phù hợp đều có.

Ngoài ra, từ việc xem nhanh bodycác lớp trong quản trị viên có branch-3-7lớp, có thể nhắm mục tiêu branch-3-8(tuy nhiên không thể nhắm mục tiêu theo điều kiện là bất cứ điều gì> = 3,8 vì đó không phải là điều CSS làm).


1
Tôi thích một biến thể chỉ CSS. Có lẽ nó sẽ được thêm vào trong phiên bản cuối cùng. Tôi chỉ nghĩ rằng nên có một cách "chính thức"
Xaver

2
Lớp .mp6 sẽ không quay trở lại, vì nó đã có sẵn cho nhu cầu của chính plugin mp6; giữ cho mp6 giao diện quản trị sẽ khá vô nghĩa và phi thường. Như Rarst chỉ ra, có lớp nhánh 3-n mới và cũng có lớp phiên bản-3-n.
hoại

Tại sao không sử dụng phát hiện qua if ( 'mp6' === get_user_option( 'admin_color' ) )?
Sven

Tôi thực sự không muốn thay đổi lớp cơ thể trên phần phụ trợ bằng plugin của mình (để thêm lớp mp6) vì đó không chỉ là các trang plugin thay vì trên mỗi trang phụ trợ. Tôi có thể thêm một vé vào WP trac
Xaver

3

Tôi cũng thích một biến thể chỉ CSS. Thật không may, điều đó không hoàn toàn có thể. Lộ trình tôi đang đi là sự kết hợp giữa CSS và PHP.

Đầu tiên, chúng tôi sử dụng PHP để phát hiện phiên bản WordPress đã cài đặt và tùy chọn, có cài đặt MP6 hay không. Điều này khá dễ dàng bằng cách sử dụng MP6hằng số được xác định bởi plugin và $wp_versiontoàn cầu theo đề xuất của Rarst. Khi chúng ta biết mình đang sống trong một thế giới MP6, chúng ta sẽ thêm lớp cơ thể của chính mình. Tôi đang chọn sử dụng tên lớp "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;
}

Bây giờ, trong CSS của chúng tôi bất cứ nơi nào chúng tôi đã từng sử dụng .admin-mp6, .admin-color-mp6hoặc .mp6selectors, chúng ta có thể sử dụng .flaticonsđể thay thế.

Điều này sẽ hoạt động cả với MP6 trên các bản cài đặt cũ hơn và WordPress 3.8+ sau khi được phát hành. Không tối ưu, nhưng là một giải pháp vững chắc, trong tương lai.


Bạn nên kiểm tra xem flaticonslớp cơ thể đã được thêm vào chưa, để tránh trùng lặp
shea

2

Andrew Nacin đã đăng một số cách tiếp cận "chính thức" cho chủ đề này tại đây

Biến thể chỉ CSS nên sử dụng lớp nhánh 3-x để nhắm mục tiêu các phiên bản trước 3.8 và mặc định sẽ được áp dụng cho tất cả các phiên bản sắp tới để bạn không phải quan tâm đến phiên bản tiếp theo:

.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 */
}

Đọc thêm về chủ đề này trên trang make.wordpress.org

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.