Cách chúng tôi viết CSS cho các chủ đề WordPress đang trong quá trình thay đổi sâu rộng. Gần đây tôi đã chia sẻ một kỹ thuật để thêm hỗ trợ loại linh hoạt trong WordPress bằng cách sử dụng 4, một tệp mới mà WordPress đã nỗ lực hết sức để trở thành nguồn trung tâm của sự thật để xác định kiểu trong các chủ đề WordPress hỗ trợ các tính năng chỉnh sửa toàn trang (FSE) Show
Đợi đã, không có tệp 5? . Trên thực tế, 5 vẫn là một tệp bắt buộc trong các chủ đề khối, mặc dù vai trò của nó bị giảm đi rất nhiều đối với thông tin meta được sử dụng để đăng ký chủ đề. Điều đó nói rằng, thực tế là 4 vẫn đang trong quá trình phát triển tích cực, có nghĩa là chúng ta đang trong giai đoạn chuyển tiếp, nơi bạn có thể tìm thấy các phong cách được xác định ở đó, trong 1 hoặc thậm chí ở cấp độ khốiVì vậy, kiểu dáng thực sự trông như thế nào trong những ngày WordPress FSE này? . Thiếu tài liệu về phong cách chủ đề khối trong Sổ tay nhà phát triển chủ đề WordPress, vì vậy mọi thứ chúng tôi trình bày ở đây là những gì tôi đã thu thập được về vị trí hiện tại của mọi thứ cũng như các cuộc thảo luận về tương lai của chủ đề WordPress Sự phát triển của phong cách WordPressCác tính năng phát triển mới có trong WordPress 6. 1 đưa chúng ta đến gần hơn với một hệ thống các phong cách được xác định hoàn toàn trong 4, nhưng vẫn còn nhiều việc phải làm trước khi chúng ta hoàn toàn có thể tin tưởng vào nó. Một cách để chúng tôi có thể biết được những gì sắp ra mắt trong các bản phát hành trong tương lai là sử dụng plugin Gutenberg. Đây là nơi các tính năng thử nghiệm thường được chạy khôMột cách khác để chúng ta có thể cảm nhận được vị trí của mình là xem xét sự phát triển của các chủ đề mặc định của WordPress. Đến nay, có ba chủ đề mặc định hỗ trợ chỉnh sửa toàn trang
Nhưng đừng bắt đầu giao dịch CSS trong 5 để lấy các cặp giá trị thuộc tính JSON trong 4. Vẫn còn những quy tắc tạo kiểu CSS cần được hỗ trợ trong 4 trước khi chúng tôi nghĩ đến việc thực hiện điều đó. Các vấn đề quan trọng còn lại hiện đang được thảo luận với mục đích chuyển hoàn toàn tất cả các quy tắc kiểu CSS sang 4 và hợp nhất các nguồn khác nhau của 4 thành giao diện người dùng để đặt kiểu toàn cầu trực tiếp trong Trình chỉnh sửa trang web WordPressGiao diện người dùng kiểu toàn cầu được tích hợp với bảng điều khiển bên phải trong Trình chỉnh sửa trang. (Tín dụng. Tìm hiểu WordPress)Điều đó khiến chúng ta ở một vị trí tương đối khó khăn. Không chỉ không có đường dẫn rõ ràng để ghi đè các kiểu chủ đề mà còn không rõ nguồn gốc của những kiểu đó thậm chí đến từ đâu — có phải từ các lớp khác nhau của tệp 4, 5, plugin Gutenberg hay ở một nơi nào khác không?Tại sao { "version": 2, "styles": { // Global-level syles "elements": { }, // Block-level styles "blocks": { } } }4 thay vì { "version": 2, "styles": { // Global-level syles "elements": { }, // Block-level styles "blocks": { } } }5?Bạn có thể thắc mắc tại sao WordPress lại chuyển sang định nghĩa kiểu dựa trên JSON thay vì tệp CSS truyền thống. Ben Dwyer từ nhóm phát triển Gutenberg đã trình bày một cách hùng hồn lý do tại sao phương pháp tiếp cận 4 lại mang lại lợi ích cho các nhà phát triển chủ đềBài đăng của Ben rất đáng đọc, nhưng phần thịt nằm trong câu trích dẫn này
Một trong những lợi ích chính của việc chuyển CSS sang JSON là JSON là định dạng mà máy có thể đọc được, có nghĩa là nó có thể được hiển thị trong Giao diện người dùng Trình chỉnh sửa trang web WordPress bằng cách tìm nạp API, do đó cho phép người dùng sửa đổi các giá trị mặc định và tùy chỉnh giao diện của trang web mà không cần . Nó cũng cung cấp một cách để định kiểu các khối một cách nhất quán, đồng thời cung cấp một cấu trúc tạo ra các lớp cụ thể sao cho cài đặt người dùng có mức độ ưu tiên cao nhất so với cài đặt được xác định trong 4. Sự tương tác giữa các kiểu cấp độ chủ đề trong 4 và các kiểu do người dùng xác định trong Giao diện người dùng kiểu toàn cầu là điều làm cho cách tiếp cận JSON trở nên hấp dẫnCác nhà phát triển duy trì tính nhất quán trong JSON và người dùng có được sự linh hoạt với các tùy chỉnh không cần mã. Đó là một đôi bên cùng có lợi Chắc chắn là có những lợi ích khác và Mike McAlister từ WP Engine đã liệt kê một số lợi ích trong chủ đề Twitter này. Bạn có thể tìm thấy nhiều lợi ích hơn nữa trong cuộc thảo luận chuyên sâu này tại blog Make WordPress Core. Và sau khi bạn đã đọc xong, hãy so sánh lợi ích của phương pháp JSON với các cách có sẵn để xác định và ghi đè kiểu trong các chủ đề cổ điển Xác định kiểu với các phần tử JSONChúng tôi đã thấy rất nhiều tiến bộ về những phần nào của chủ đề 4 có khả năng tạo kiểu. Trước WordPress 6. 1, tất cả những gì chúng tôi thực sự có thể làm là tạo kiểu cho tiêu đề và liên kết. Giờ đây, với WordPress 6. 1, chúng ta có thể thêm các nút, chú thích, trích dẫn và tiêu đề vào hỗn hợpVà chúng tôi làm điều đó bằng cách xác định các phần tử JSON. Hãy nghĩ về các yếu tố như các thành phần riêng lẻ sống trong một khối WordPress. Giả sử chúng ta có một khối chứa tiêu đề, đoạn văn và nút. Những phần riêng lẻ đó là các phần tử và có một đối tượng 3 trong 4 nơi chúng tôi xác định kiểu của chúng
Một cách tốt hơn để mô tả các phần tử JSON là các thành phần cấp thấp cho các chủ đề và khối không cần độ phức tạp của các khối. Chúng là các biểu diễn nguyên thủy HTML không được xác định trong một khối nhưng có thể được sử dụng trên các khối. Cách chúng được hỗ trợ trong WordPress (và plugin Gutenberg) được mô tả trong Sổ tay Trình chỉnh sửa khối và hướng dẫn Chỉnh sửa trang web đầy đủ này của Carolina Nymark Ví dụ: các liên kết được tạo kiểu trong đối tượng 3 nhưng không phải là một khối theo đúng nghĩa của chúng. Nhưng một liên kết có thể được sử dụng trong một khối và nó sẽ kế thừa các kiểu được xác định trên đối tượng 6 trong 4. Tuy nhiên, điều này không gói gọn đầy đủ định nghĩa của một phần tử vì một số phần tử cũng được đăng ký dưới dạng các khối, chẳng hạn như các khối Tiêu đề và Nút — nhưng các khối đó vẫn có thể được sử dụng trong các khối khácĐây là bảng các yếu tố hiện có sẵn để tạo kiểu trong 4 trước WordPress 6. 1, lịch sự của CarolinaElementSelectorNơi nó được hỗ trợ 9 0WordPress Core 1 – 2Thẻ HTML cho mỗi cấp tiêu đề. 3, 4, 5, 6, 7 và 8WordPress Core 9Tạo kiểu cho tất cả các tiêu đề trên toàn cầu theo thẻ HTML riêng lẻ. 3, 4, 5, 6, 7 và 8Gutenberg plugin 26 27Gutenberg plugin 28 29, 60, 61, 62, 63, 64, 65Gutenberg plugin 66 67Gutenberg pluginNhư bạn có thể thấy, vẫn còn sớm và vẫn còn nhiều việc cần phải chuyển từ plugin Gutenberg sang WordPress Core. Nhưng bạn có thể thấy sẽ nhanh như thế nào khi làm điều gì đó như tạo kiểu cho tất cả các tiêu đề trong một chủ đề trên toàn cầu mà không cần tìm kiếm bộ chọn trong tệp CSS hoặc DevTools Hơn nữa, bạn cũng có thể bắt đầu thấy cách cấu trúc của 4 sắp xếp các lớp biểu mẫu có tính đặc thù, đi từ các phần tử tổng thể (e. g. 69) đến các phần tử riêng lẻ (e. g. 1) và kiểu cấp độ khối (e. g. 1 chứa trong một khối)Thông tin bổ sung về các phần tử JSON có sẵn trong đề xuất Make WordPress này và vé mở này trong repo GitHub của plugin Gutenberg Tính đặc hiệu của JSON và CSSHãy tiếp tục nói về tính đặc hiệu của CSS. Tôi đã đề cập trước đó rằng cách tiếp cận JSON để tạo kiểu thiết lập một hệ thống phân cấp. Và đó là sự thật. Các kiểu được xác định trên các phần tử JSON trong 4 được coi là kiểu chủ đề mặc định. Và mọi thứ được đặt bởi người dùng trong Giao diện người dùng kiểu toàn cầu sẽ ghi đè giá trị mặc địnhNói cách khác. kiểu người dùng mang nhiều tính đặc hiệu hơn kiểu chủ đề mặc định. Chúng ta hãy xem khối Nút để cảm nhận cách thức hoạt động của khối này Tôi đang sử dụng Emptytheme, một chủ đề WordPress trống không có kiểu dáng CSS. Tôi sẽ thêm một khối Nút trên một trang mới Màu nền, màu văn bản và đường viền tròn đến từ cài đặt mặc định của trình chỉnh sửa khốiOK, chúng tôi biết rằng WordPress Core có một số kiểu dáng nhẹ nhàng. Bây giờ, tôi sẽ chuyển sang chủ đề TT3 mặc định từ WordPress 6. 1 và kích hoạt nó. Nếu tôi làm mới trang của mình bằng nút, nút sẽ thay đổi kiểu Màu nền, màu văn bản và kiểu góc bo tròn đã thay đổiBạn có thể biết chính xác nguồn gốc của những phong cách mới đó trong tệp 4 của TT3. Điều này cho chúng ta biết rằng các kiểu phần tử JSON được ưu tiên hơn các kiểu WordPress CoreBây giờ tôi sẽ sửa đổi TT3 bằng cách ghi đè nó bằng tệp 4 trong chủ đề con, trong đó màu nền mặc định của khối Nút được đặt thành màu đỏKiểu mặc định cho khối Nút đã được cập nhật thành màu đỏNhưng hãy chú ý đến nút tìm kiếm trong ảnh chụp màn hình cuối cùng đó. Nó cũng phải có màu đỏ, phải không? . Nếu chúng tôi muốn thay đổi cả hai nút, chúng tôi có thể thực hiện ở cấp độ người dùng bằng cách sử dụng Giao diện người dùng kiểu toàn cầu trong trình chỉnh sửa trang web Chúng tôi đã thay đổi màu nền của cả hai nút thành màu xanh lam và cũng sửa đổi văn bản bằng Giao diện người dùng kiểu toàn cầu. Lưu ý rằng màu xanh từ đó được ưu tiên hơn các kiểu chủ đề động cơ phong cáchĐó là một ý tưởng rất nhanh, nhưng hay, về cách quản lý tính đặc hiệu của CSS trong các chủ đề khối của WordPress. Nhưng nó không phải là bức tranh hoàn chỉnh vì vẫn chưa rõ những phong cách đó được tạo ra từ đâu. WordPress có các kiểu mặc định của riêng nó đến từ đâu đó, sử dụng dữ liệu trong 4 để biết thêm các quy tắc kiểu và ghi đè các kiểu đó bằng bất kỳ thứ gì được đặt trong Kiểu toàn cầuLà những phong cách nội tuyến? Đó là điều mà Style Engine mới hy vọng sẽ giải quyết được. Style Engine là một API mới trong WordPress 6. 1 nhằm mang lại sự nhất quán cho cách tạo kiểu và nơi áp dụng kiểu. Nói cách khác, nó lấy tất cả các nguồn tạo kiểu có thể và chịu trách nhiệm duy nhất cho việc tạo kiểu khối đúng cách. Tôi biết rồi mà. Tuy nhiên, một sự trừu tượng khác trên đầu trang của sự trừu tượng khác chỉ để tạo ra một số phong cách. Nhưng có một API tập trung cho các kiểu có lẽ là giải pháp tao nhã nhất vì các kiểu có thể đến từ một số nơi Chúng tôi mới chỉ có cái nhìn đầu tiên về Style Engine. Trên thực tế, đây là những gì đã được hoàn thành cho đến nay, theo vé
Về cơ bản, đây là nền tảng để thiết lập một API duy nhất chứa tất cả các quy tắc kiểu CSS cho một chủ đề, bất kể chúng đến từ đâu. Nó dọn sạch cách WordPress sẽ đưa vào các kiểu nội tuyến trước 6. 1 và thiết lập một hệ thống tên lớp ngữ nghĩa Bạn có thể tìm thêm thông tin chi tiết về các mục tiêu dài hạn và ngắn hạn của Style Engine trong cuộc thảo luận Make WordPress Core này. Bạn cũng có thể theo dõi vấn đề theo dõi và bảng dự án để cập nhật thêm Làm việc với các phần tử JSONChúng ta đã nói một chút về các phần tử JSON trong tệp 4 và về cơ bản chúng là các nguyên hàm HTML để xác định kiểu mặc định cho những thứ như tiêu đề, nút và liên kết, trong số những thứ khác. Bây giờ, hãy xem thực tế việc sử dụng một phần tử JSON và cách nó hoạt động trong các ngữ cảnh kiểu dáng khác nhauCác phần tử JSON thường có hai bối cảnh. cấp độ toàn cầu và cấp độ khối. Các kiểu cấp độ toàn cầu được xác định với ít tính đặc hiệu hơn so với ở cấp độ khối để đảm bảo rằng các kiểu dành riêng cho khối được ưu tiên về tính nhất quán ở bất kỳ nơi nào sử dụng các khối Kiểu toàn cầu cho các phần tử JSONHãy xem chủ đề TT3 mặc định mới và kiểm tra cách các nút của nó được tạo kiểu. Sau đây là bản sao chép-dán rút gọn của tệp TT3 4 (đây là mã đầy đủ) hiển thị phần kiểu chung, nhưng bạn có thể tìm thấy mã gốc tại đâyXem mã
Tất cả các nút được tạo kiểu ở cấp độ toàn cầu ( 49)Mọi nút trong chủ đề Twenty Twenty-Three đều có cùng màu nền, được đặt thành biến CSS 50 hoặc 51Chúng tôi cũng có thể xác nhận điều này trong DevTools. Lưu ý rằng một lớp có tên là 52 là bộ chọn. Lớp tương tự cũng được sử dụng để tạo kiểu cho các trạng thái tương tácMột lần nữa, phong cách này đang diễn ra ở cấp độ toàn cầu, đến từ 4. Bất cứ khi nào chúng ta sử dụng một nút, nó sẽ có cùng một nền vì chúng có chung bộ chọn và không có quy tắc kiểu nào khác ghi đè lên nóBên cạnh đó, WordPress 6. 1 đã thêm hỗ trợ tạo kiểu cho các trạng thái tương tác cho một số phần tử nhất định, như nút và liên kết, sử dụng lớp giả trong 4 — bao gồm 55, 56 và 57 — hoặc Giao diện người dùng kiểu toàn cầu. Kỹ sư Automattic Dave Smith trình bày tính năng này trong một video trên YouTubeChúng tôi có thể ghi đè màu nền của nút trong 4 (tốt nhất là trong chủ đề con vì chúng tôi đang sử dụng chủ đề mặc định của WordPress) hoặc trong cài đặt Kiểu toàn cầu trong trình chỉnh sửa trang (không cần chủ đề con vì nó không yêu cầu thay đổi mã)Nhưng sau đó các nút sẽ thay đổi cùng một lúc. Điều gì sẽ xảy ra nếu chúng ta muốn ghi đè màu nền khi nút là một phần của một khối nhất định? Kiểu cấp độ khối cho các phần tửĐể hiểu cách chúng ta có thể sử dụng và tùy chỉnh các kiểu ở cấp khối, hãy thay đổi màu nền của nút có trong khối Tìm kiếm. Hãy nhớ rằng, có một khối Nút, nhưng những gì chúng tôi đang làm là ghi đè màu nền ở cấp độ khối của khối Tìm kiếm. Bằng cách đó, chúng tôi chỉ áp dụng màu mới ở đó thay vì áp dụng nó trên toàn cầu cho tất cả các nút Để làm điều đó, chúng tôi xác định các kiểu trên đối tượng 59 trong 4. Đúng vậy, nếu chúng ta xác định kiểu chung cho tất cả các nút trên 51, thì chúng ta có thể xác định kiểu khối cụ thể cho các phần tử nút trên 52, theo cấu trúc tương tự 8Thấy không? Kết quả? Chúng ta cũng có thể thấy sự thay đổi trong DevTools Điều này cũng đúng nếu chúng ta muốn tạo kiểu cho các nút được bao gồm trong các khối khác. Và các nút chỉ là một ví dụ, vì vậy hãy xem một ví dụ khác Thí dụ. Tiêu đề kiểu dáng ở mỗi cấp độHãy đưa tất cả thông tin này về nhà bằng một ví dụ. Lần này, chúng tôi sẽ
Đầu tiên, hãy bắt đầu với cấu trúc cơ bản của 4
Điều này thiết lập phác thảo cho các kiểu toàn cầu và cấp khối của chúng tôi Tạo kiểu cho tất cả các tiêu đề trên toàn cầuHãy thêm đối tượng 69 vào kiểu chung của chúng ta và áp dụng một số kiểu
Điều đó đặt màu cho tất cả các tiêu đề thành màu cơ bản đặt trước trong WordPress. Hãy thay đổi cả màu sắc và kích thước phông chữ của các thành phần Tiêu đề 2 ở cấp độ toàn cầu 2Bây giờ, tất cả các thành phần của Tiêu đề 2 được đặt thành màu đặt trước chính với kích thước phông chữ linh hoạt. Nhưng có lẽ chúng ta muốn một 59 cố định cho phần tử Heading 2 khi nó được sử dụng trong khối Query Look 6Bây giờ chúng ta có ba cấp độ phong cách cho các phần tử Heading 2. tất cả các tiêu đề, tất cả các thành phần Tiêu đề 2 và các thành phần Tiêu đề 2 được sử dụng trong khối Vòng lặp Truy vấn Ví dụ chủ đề hiện cóMặc dù chúng tôi chỉ xem xét các ví dụ về kiểu dáng cho các nút và tiêu đề trong bài viết này, WordPress 6. 1 hỗ trợ tạo kiểu cho các phần tử bổ sung. Có một bảng phác thảo chúng trong phần “Xác định kiểu với các phần tử JSON” Có lẽ bạn đang tự hỏi phần tử JSON nào hỗ trợ thuộc tính CSS nào, chưa kể đến cách bạn thậm chí sẽ khai báo những phần tử đó. Trong khi chúng tôi chờ tài liệu chính thức, tài nguyên tốt nhất mà chúng tôi có sẽ là các tệp 4 cho các chủ đề hiện có. Tôi sẽ cung cấp liên kết đến các chủ đề dựa trên các yếu tố mà chúng tùy chỉnh và chỉ ra những thuộc tính nào được tùy chỉnhChủ đềCó gì tùy chỉnhChủ đề JSONBlockbaseNút, tiêu đề, liên kết, khối lõiMã nguồnBlock CanvasNút, tiêu đề, liên kết, khối lõiMã nguồnDiscoNút, tiêu đề, khối lõiMã nguồnFrostNút, tiêu đề, liên kết, chú thích, trích dẫn, khối lõiMã nguồn PixlNút, tiêu đề, liên kết, khối lõiMã nguồnMưa rơiNút, tiêu đề, liên kết Đảm bảo giao diện đẹp cho từng tệp 4 vì các chủ đề này bao gồm các ví dụ tuyệt vời về kiểu dáng cấp khối trên đối tượng 59kết thúcNhững thay đổi thường xuyên đối với trình chỉnh sửa toàn trang đang trở thành nguồn gây khó chịu lớn cho nhiều người, bao gồm cả những người dùng Gutenberg am hiểu công nghệ. Ngay cả các quy tắc CSS rất đơn giản, hoạt động tốt với các chủ đề cổ điển, dường như không hoạt động đối với các chủ đề khối vì các lớp cụ thể mới mà chúng tôi đã đề cập trước đó Về đề xuất GitHub thiết kế lại trình chỉnh sửa trang web ở chế độ trình duyệt mới, Sara Gooding viết trong một bài đăng trên WP Tavern
Ngay cả khi là một tay đua sớm nhạy bén trong thế giới của trình chỉnh sửa khối Gutenberg và các chủ đề hình khối, tôi cũng có vô số nỗi thất vọng của riêng mình. Tuy nhiên, tôi rất lạc quan và dự đoán rằng trình chỉnh sửa trang web sau khi hoàn thành sẽ là một công cụ mang tính cách mạng cho người dùng cũng như các nhà phát triển chủ đề am hiểu công nghệ. Dòng tweet đầy hy vọng này đã xác nhận rằng. Trong khi chờ đợi, có vẻ như chúng ta nên chuẩn bị cho nhiều thay đổi hơn, và thậm chí có thể là một chuyến đi gập ghềnh Người giới thiệuTôi đang liệt kê tất cả các tài nguyên tôi đã sử dụng khi nghiên cứu thông tin cho bài viết này phần tử JSON
phong cách toàn cầu
Động cơ phong cách
Cảm ơn vì đã đọc. Tôi muốn nghe phản hồi của riêng bạn về việc sử dụng các chủ đề khối và cách bạn quản lý CSS của mình Tại sao CSS tùy chỉnh của tôi không hoạt động trong WordPress?Đang tạo CSS. Điều này có thể dễ dàng được khắc phục bằng cách truy cập WP admin > Elementor > Tools > Regenerate CSS. Sau đó, bạn có thể xóa bộ đệm (bộ đệm WP và bộ đệm của trình duyệt) và làm mới trang . Xóa bộ nhớ cache của trang web. Kiểm tra xem bạn có bất kỳ plugin bộ nhớ đệm nào trên trang web của mình hoặc bất kỳ bộ đệm ẩn cấp máy chủ nào được bật không. Xóa các bộ đệm đó.
Tại sao kiểu CSS của tôi không hoạt động?Đảm bảo thẻ liên kết ở đúng vị trí
. Kiểu bên ngoài CÓ THỂ được đặt bên trong thẻ |