Làm cách nào để thay đổi phiên bản .css trong WordPress?


13

Giống như tiêu đề gợi ý, tôi không chắc chắn làm thế nào để thay đổi phiên bản của tệp .css trong chủ đề của mình. Hiện tại, phiên bản .css là như thế này:

<link rel='stylesheet' id='xxxx'  href='https://www. site css/ styles.css?ver=4.6.1' type='text/css' media='all' />

Có một kịch bản mà tôi cần chạy - tôi nên tìm phiên bản 4.6.2 như trên không?


Làm thế nào bạn có được kịch bản này để in?
Nathan Powell

Câu trả lời:


18

Đối số thứ tư, $vercho wp_enqueue_style()phép bạn đặt phiên bản:

wp_enqueue_style( string $handle,
                  string $src = false,
                  array $deps = array(),
                  string|bool|null $ver = false,
                  string $media = 'all' );

Theo các tài liệu:

$ ver (chuỗi | bool | null) (Tùy chọn) Chuỗi chỉ định số phiên bản biểu định kiểu, nếu có, được thêm vào URL dưới dạng chuỗi truy vấn cho mục đích phá vỡ bộ đệm. Nếu phiên bản được đặt thành false, số phiên bản sẽ tự động được thêm bằng với phiên bản WordPress đã cài đặt hiện tại. Nếu được đặt thành null, không có phiên bản nào được thêm vào. Giá trị mặc định: false


Cảm ơn vì điều đó - tôi đoán điều tôi đang hỏi là 'làm thế nào để làm điều đó' - tức là 'làm thế nào để tôi chạy tập lệnh đó để tạo phiên bản mới'? Hy vọng điều đó có ý nghĩa ...
henry

Bạn sẽ cập nhật câu hỏi của bạn với mã wp_enqueue_style()được gọi ở đâu? WordPress tự động xử lý phiên bản dựa trên lời giải thích $verđược đăng trong câu trả lời của tôi, vì vậy tôi giả sử $ ver được đặt thành false. Nếu bạn muốn thay đổi nó, hãy thay đổi đối số $ ver thành một chuỗi mới (Tôi sẽ không sử dụng 4.6.2 vì quy ước đó đã được WordPress sử dụng), nhưng về mặt kỹ thuật thì nó sẽ hoạt động.
Dave Romsey

1
Bạn có thể dễ dàng thay thế bất cứ điều gì ở đó. Ví dụ: $ver = time();sẽ tạo một phiên bản mới mỗi lần bạn nhấn trang và phiên bản sẽ là thời gian.
Nathan Powell

8

Chủ yếu là wp_enqueue_style()chức năng sử dụng của chủ đề bên trong tệp tin.php của họ để thêm biểu định kiểu trong tiêu đề. Dưới đây là cách tìm hiểu xem chủ đề của bạn có làm như vậy không.

Mở wp-content/themes/YOUR_THEME_NAME/functions.phptệp của bạn và tìm ra dòng đang thêm biểu định kiểu, như:

wp_enqueue_style('main_style',  get_stylesheet_directory_uri() . '/style.css');

Hoặc thích:

wp_enqueue_style( 'twentysixteen-style', get_stylesheet_uri() );

Bạn có thể tìm kiếm ID (ngoại trừ -cssmột phần) ... nếu ID đó là: main_style-csstìm kiếm chỉ main-styletrong tệp tin.php của bạn và có lẽ bạn sẽ tìm thấy dòng mã bạn đang tìm kiếm.

Bây giờ bạn đã tìm thấy mã và bạn biết rằng chủ đề của bạn thêm biểu định kiểu này bằng cách sử dụng wp_enqueue_style()trong tệp tin.php. Bạn cần cập nhật mã này cho phiên bản.

$style_ver = filemtime( get_stylesheet_directory() . '/style.css' );
wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', $style_ver );

Như bạn có thể thấy, mã này nhận được lần sửa đổi cuối cùng của tệp style.css bằng filemtime()hàm PHP và nó cũng chuyển đổi thời gian thành dấu thời gian bằng cách sử dụng time()chức năng PHP chỉ để làm cho mọi thứ sạch sẽ.

Nếu bạn không muốn phiên bản thay đổi linh hoạt mỗi lần bạn có thể thực hiện việc này:

wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', '1.5' );

Nó khá là nhiều. Sự thanh bình!


Cảnh giác: bạn nên sử dụng get_stylesheet_directory()bên trong filemtime()vì nó sẽ trả về một đường dẫn hệ thống.
Một nửa điên cuồng

3

Tôi đã không nhận được nhiều từ những câu trả lời này vì vậy tôi nghĩ tôi sẽ viết những gì hiệu quả cho tôi. Tôi biết bộ luật nói:

$ ver (chuỗi | bool | null) (Tùy chọn) Chuỗi chỉ định số phiên bản biểu định kiểu, nếu có, được thêm vào URL dưới dạng chuỗi truy vấn cho mục đích phá vỡ bộ đệm. Nếu phiên bản được đặt thành false, số phiên bản sẽ tự động được thêm bằng với phiên bản WordPress được cài đặt hiện tại. Nếu được đặt thành null, không có phiên bản nào được thêm vào. Giá trị mặc định: sai

Nhưng nó rất khó hiểu về cách nó thực sự hoạt động. Tôi không thể lấy số phiên bản wp_enqueue_styleđể kích hoạt thông số truy vấn như ?ver=1.2.3trên biểu định kiểu của mình. Tuy nhiên, đặt nó thành true cho phép phiên bản khai báo của cache bustbiểu định kiểu thành biểu định kiểu. (đọc tiếp)

Trong style.css của bạn, bạn phải đặt tên cho chủ đề của bạn. Điều này được yêu cầu bởi WP. Tuy nhiên, các tùy chọn khác như versionlà phiên bản boolean của wp_enqueue_style cũng cung cấp tham chiếu.

/******************************************************************
Site Name: MySite.com
Author: @BenRacicot
Version: 4.0 // <- wp_enqueue_style's version number
Stylesheet: Main Stylesheet
******************************************************************/

Bây giờ khi tôi thay đổi điều đó để Version: 4.1tôi nhận đượcstyle.css?cache-bust=0.24135995238933283


2

Bạn có thể chỉ cần sử dụng time()tại một thời điểm của phong cách enqueue hoặc kịch bản như thế này ..

Không sử dụng wp_enqueue_style()chức năng wordpress

<link rel='stylesheet' id='xxxx'  href='https://www. site css/ styles.css?ver=<?php echo time(); ?>' type='text/css' media='all' />

Sử dụng wp_enqueue_style()chức năng

wp_enqueue_style('style_sheet_name', get_stylesheet_directory_uri() . '/custom_style.css', '', time());

HOẶC LÀ

wp_enqueue_style('style_sheet_name', get_stylesheet_uri() . '/custom_style.css', '', time());

1
Tôi không khuyến nghị điều này, tôi khá chắc chắn rằng nó sẽ đánh bại tất cả các phiên bản bộ nhớ đệm cùng nhau.
Fabian von Ellerts
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.