วิธีการเปลี่ยนรุ่นของ. css ใน WordPress?


13

เหมือนกับชื่อเรื่องที่แนะนำฉันไม่แน่ใจเหมือนกันว่าจะเปลี่ยนเวอร์ชันของไฟล์. css ในธีมของฉันได้อย่างไร ในขณะนี้การกำหนดรุ่น. css เป็นดังนี้:

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

มีสคริปต์ที่ฉันต้องใช้ - ฉันควรจะหาเวอร์ชั่น 4.6.2 ตามที่กล่าวไว้ข้างต้นหรือไม่?


คุณได้รับสคริปต์นี้เพื่อพิมพ์อย่างไร
นาธานพาวเวล

คำตอบ:


18

อาร์กิวเมนต์ที่สี่$verสำหรับwp_enqueue_style()ให้คุณตั้งค่าเวอร์ชัน:

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

ต่อเอกสาร:

$ ver (string | bool | null) (เป็นตัวเลือก) สตริงที่ระบุหมายเลขเวอร์ชั่นของสไตล์ชีทถ้ามีหนึ่งอันซึ่งถูกเพิ่มไปยัง URL เป็นสตริงเคียวรีสำหรับวัตถุประสงค์ในการป้องกันแคช หากตั้งค่าเวอร์ชันเป็นเท็จหมายเลขเวอร์ชันจะถูกเพิ่มโดยอัตโนมัติเท่ากับรุ่น WordPress ที่ติดตั้งปัจจุบัน หากตั้งค่าเป็น null จะไม่มีการเพิ่มรุ่น ค่าเริ่มต้น: false


ขอบคุณสำหรับสิ่งนั้น - ฉันเดาว่าสิ่งที่ฉันถามคือ 'ฉันจะทำอย่างไร' - นั่นคือ 'ฉันจะรันสคริปต์นั้นเพื่อสร้างเวอร์ชันใหม่ได้อย่างไร' หวังว่าจะทำให้ความรู้สึก ...
henry

คุณช่วยอัปเดตคำถามของคุณด้วยรหัสที่wp_enqueue_style()ถูกเรียก? WordPress จัดการการกำหนดเวอร์ชันโดยอัตโนมัติตามคำอธิบายของ$verโพสต์ในคำตอบของฉันดังนั้นฉันสมมติว่า $ ver ถูกตั้งค่าเป็นเท็จ หากคุณต้องการเปลี่ยนให้เปลี่ยนอาร์กิวเมนต์ $ ver เป็นสตริงใหม่ (ฉันจะไม่ใช้ 4.6.2 เนื่องจากการประชุมนั้นใช้โดย WordPress แล้ว) แต่ในทางเทคนิคแล้วมันใช้งานได้
Dave Romsey

1
คุณสามารถทดแทนสิ่งที่มีได้อย่างง่ายดาย ตัวอย่างเช่น$ver = time();จะสร้างเวอร์ชันใหม่ทุกครั้งที่คุณเข้าชมหน้าและรุ่นจะเป็นเวลา
Nathan Powell

8

ส่วนใหญ่ใช้wp_enqueue_style()ฟังก์ชั่นการใช้งานชุดรูปแบบของไฟล์ภายในไฟล์ functions.php เพื่อเพิ่มสไตล์ชีทในส่วนหัว นี่คือวิธีการดูว่าชุดรูปแบบของคุณเหมือนกันหรือไม่

เปิดwp-content/themes/YOUR_THEME_NAME/functions.phpไฟล์ของคุณและค้นหาบรรทัดที่เพิ่มสไตล์ชีทไว้เช่น:

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

หรือชอบ:

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

คุณสามารถค้นหา ID (ยกเว้น-cssบางส่วน) ... ถ้า ID คือ: main_style-cssค้นหาเฉพาะmain-styleในไฟล์ functions.php ของคุณและคุณอาจจะพบบรรทัดของรหัสที่คุณกำลังมองหา

เมื่อคุณพบโค้ดแล้วและคุณรู้ว่าธีมของคุณเพิ่มสไตล์ชีทนี้โดยใช้wp_enqueue_style()ในไฟล์ functions.php คุณต้องอัปเดตรหัสนี้สำหรับเวอร์ชัน

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

อย่างที่คุณเห็นรหัสนี้ได้รับการแก้ไขครั้งล่าสุดของไฟล์ style.css โดยใช้filemtime()ฟังก์ชั่น PHP และยังแปลงเวลาในการประทับเวลาโดยใช้time()ฟังก์ชั่น PHP เพื่อทำให้ทุกอย่างสะอาด

หากคุณไม่ต้องการให้รุ่นเปลี่ยนแบบไดนามิกทุกครั้งคุณสามารถทำสิ่งนี้ได้:

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

นั่นมันสวยมาก สันติภาพ!


หัวขึ้น: คุณควรใช้get_stylesheet_directory()ภายในfilemtime()เพราะมันจะกลับเส้นทางของระบบ
Half Crazed

3

ฉันไม่ได้คำตอบเหล่านี้มากนักดังนั้นฉันคิดว่าฉันจะเขียนสิ่งที่ได้ผลสำหรับฉัน ฉันรู้ว่า codex พูดว่า:

$ ver (string | bool | null) (เป็นตัวเลือก) สตริงที่ระบุหมายเลขเวอร์ชั่นของสไตล์ชีทถ้ามีหนึ่งอันซึ่งถูกเพิ่มไปยัง URL เป็นสตริงเคียวรีสำหรับวัตถุประสงค์ในการป้องกันแคช หากตั้งค่าเวอร์ชันเป็นเท็จหมายเลขเวอร์ชันจะถูกเพิ่มโดยอัตโนมัติเท่ากับรุ่น WordPress ที่ติดตั้งในปัจจุบัน หากตั้งค่าเป็น null จะไม่มีการเพิ่มรุ่น ค่าเริ่มต้น: false

แต่มันเป็นความลับมากว่ามันใช้งานได้จริง ฉันไม่สามารถรับหมายเลขเวอร์ชันwp_enqueue_styleเพื่อเรียกใช้พารามิเตอร์การสืบค้นเช่นเดียว?ver=1.2.3กับสไตล์ชีทของฉัน อย่างไรก็ตามการตั้งค่าเป็นจริงอนุญาตให้เวอร์ชันที่ประกาศcache bustของสไตล์ชีทเป็นสไตล์ชีท (อ่านต่อ)

ภายใน style.css ของคุณคุณต้องตั้งชื่อธีมของคุณ สิ่งนี้จำเป็นสำหรับ WP อย่างไรก็ตามตัวเลือกอื่น ๆ เช่นversionสิ่งที่บูลีนรุ่น wp_enqueue_style ให้การอ้างอิงด้วย

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

ตอนนี้เมื่อฉันเปลี่ยนสิ่งที่Version: 4.1ฉันได้รับstyle.css?cache-bust=0.24135995238933283


2

คุณสามารถใช้time()รูปแบบการจัดคิวหรือสคริปต์ในเวลานี้

โดยไม่ต้องใช้wp_enqueue_style()ฟังก์ชั่นwordpress

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

การใช้wp_enqueue_style()ฟังก์ชั่น

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

หรือ

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

1
ฉันจะไม่แนะนำสิ่งนี้ฉันค่อนข้างแน่ใจว่ามันจะเอาชนะเวอร์ชันแคชทั้งหมดด้วยกัน
Fabian von Ellerts
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.