Bagaimana cara mengubah versi .css di WordPress?

13

Seperti judulnya, saya tidak terlalu yakin bagaimana mengubah versi file .css dalam tema saya. Saat ini, versi .css adalah seperti ini:

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

Apakah ada skrip yang harus saya jalankan - di mana saya harus mencari untuk membuat versi 4.6.2 seperti di atas?

Henry
sumber
Bagaimana Anda membuat skrip ini dicetak?
Nathan Powell

Jawaban:

18

Argumen keempat, $veruntuk wp_enqueue_style()memungkinkan Anda mengatur versi:

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

Per dokumen:

$ ver (string | bool | null) (Opsional) String yang menentukan nomor versi stylesheet, jika ada, yang ditambahkan ke URL sebagai string kueri untuk keperluan penghentian cache. Jika versi disetel ke false, nomor versi ditambahkan secara otomatis sama dengan versi WordPress yang diinstal saat ini. Jika diatur ke nol, tidak ada versi yang ditambahkan. Nilai default: false

Dave Romsey
sumber
Terima kasih untuk itu - saya kira yang saya tanyakan adalah 'bagaimana saya melakukannya' - yaitu 'bagaimana saya menjalankan skrip itu untuk menghasilkan versi baru'? Harapan itu masuk akal ...
henry
Apakah Anda akan memperbarui pertanyaan Anda dengan kode di mana wp_enqueue_style()dipanggil? WordPress menangani versi secara otomatis berdasarkan penjelasan yang $verdiposting dalam jawaban saya, jadi saya berasumsi $ ver disetel ke false. Jika Anda ingin mengubahnya, ubah argumen $ ver ke string baru (saya tidak akan menggunakan 4.6.2 karena konvensi itu sudah digunakan oleh WordPress), tetapi secara teknis itu akan berhasil.
Dave Romsey
1
Anda dapat dengan mudah mengganti apa pun di sana. Misalnya $ver = time();akan membuat versi baru setiap kali Anda menekan halaman, dan versi akan menjadi waktu.
Nathan Powell
8

Sebagian besar menggunakan wp_enqueue_style()fungsi theme di dalam file functions.php mereka untuk menambahkan style sheet di header. Inilah cara untuk mengetahui apakah tema Anda melakukan hal yang sama.

Buka wp-content/themes/YOUR_THEME_NAME/functions.phpfile Anda , dan cari tahu baris yang menambahkan style sheet, Seperti:

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

Atau Suka:

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

Anda dapat mencari ID (kecuali untuk -csssebagian) ... jika ID tersebut adalah: main_style-csscari hanya main-styledi file functions.php Anda, dan Anda mungkin harus menemukan baris kode yang Anda cari.

Sekarang Anda telah menemukan kode dan Anda tahu bahwa tema Anda menambahkan stylesheet ini dengan menggunakan wp_enqueue_style()file functions.php. Anda perlu memperbarui kode ini untuk versi.

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

Seperti yang Anda lihat, kode ini mendapatkan waktu modifikasi terakhir dari file style.css menggunakan filemtime()fungsi PHP dan juga mengubah waktu untuk timestamp menggunakan time()fungsi PHP hanya untuk membuat semuanya menjadi bersih.

Jika Anda tidak ingin versi berubah secara dinamis setiap kali Anda cukup melakukan ini:

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

Cukup banyak. Perdamaian!

Waqas Rahang
sumber
Kepala: Anda harus menggunakan get_stylesheet_directory()di dalam filemtime()karena akan mengembalikan jalur sistem.
Setengah Crazed
3

Saya tidak mendapatkan banyak dari jawaban ini jadi saya pikir saya akan menulis apa yang berhasil untuk saya. Saya tahu naskah kuno mengatakan:

$ ver (string | bool | null) (Opsional) String yang menentukan nomor versi stylesheet, jika ada, yang ditambahkan ke URL sebagai string kueri untuk keperluan penghentian cache. Jika versi disetel ke false, nomor versi ditambahkan secara otomatis sama dengan versi WordPress yang diinstal saat ini. Jika diatur ke nol, tidak ada versi yang ditambahkan. Nilai default: salah

Tapi itu sangat samar tentang cara kerjanya. Saya tidak dapat memasukkan nomor versi wp_enqueue_styleuntuk memicu param kueri seperti ?ver=1.2.3pada stylesheet saya. Namun mengaturnya ke true memungkinkan versi cache bustpernyataan stylesheet ke stylesheet. (baca terus)

Dalam style.css Anda, Anda harus memberi nama tema Anda. Ini diperlukan oleh WP. Namun opsi lain seperti versionapa yang diberikan boolean versi wp_enqueue_style juga memberikan referensi.

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

Sekarang ketika saya mengubahnya untuk Version: 4.1saya dapatkanstyle.css?cache-bust=0.24135995238933283

Ben Racicot
sumber
2

Anda dapat menggunakan time()pada saat gaya enqueue atau skrip seperti ini ..

Tanpa menggunakan wp_enqueue_style()fungsi wordpress

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

Menggunakan wp_enqueue_style()fungsi

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

ATAU

wp_enqueue_style('style_sheet_name', get_stylesheet_uri() . '/custom_style.css', '', time());
Tuan HK
sumber
1
Saya tidak akan merekomendasikan ini, saya cukup yakin ini akan mengalahkan versi caching secara bersamaan.
Fabian von Ellerts