Tôi muốn có một số ý kiến liên quan đến các thực tiễn tốt nhất để phát triển các plugin WordPress cung cấp tích hợp chủ đề.
Để có ý nghĩa khi tôi đặt câu hỏi này, hãy để tôi bắt đầu với một ví dụ giả thuyết về một kịch bản mà tôi tò mò. Hãy tưởng tượng rằng tôi tạo một plugin có tên "Discography". Discography đăng ký ba loại bài đăng tùy chỉnh: "Ban nhạc", "Album" và "Bài hát". Plugin cũng cung cấp các hộp meta cung cấp chi tiết cho từng loại bài đăng, cũng như các nguyên tắc phân loại tùy chỉnh để sắp xếp từng loại bài đăng. Các loại bài đăng này được gắn với nhau bằng plugin Bài viết 2 . Trong quản trị viên, người dùng có thể thêm các băng tần mới, có thể được liên kết với các album, lần lượt được liên kết với các bản nhạc, tất cả sẽ có nhiều dữ liệu khác được thêm vào chúng thông qua các hộp meta và phân loại.
Bây giờ, tôi không muốn plugin này chỉ cần thiết lập một quản trị viên để người dùng nhập thông tin này; Tôi muốn nó cung cấp một số màn hình mặc định cho dữ liệu. Một người dùng / nhà phát triển nâng cao hơn sẽ ổn khi chỉ có quản trị viên này. Nó sẽ đủ dễ dàng để cô ấy lấy dữ liệu đó và sử dụng trong chủ đề; tuy nhiên, nếu không có một số lượt xem mặc định, plugin này sẽ vô dụng đối với hầu hết người dùng. Trong ví dụ này, bạn có thể hiển thị bất cứ thứ gì như (dấu ngoặc đơn hiển thị các cách thông tin có thể được hiển thị theo thứ tự phân cấp mẫu):
- Các băng tần (đơn tiền tố-band.php, single.php, index.php, shortcode)
- Album (tiền tố đơn-album.php, single.php, index.php, shortcode)
- Các bản nhạc (đơn tiền tố-track.php, single.php, index.php, shortcode)
- Danh sách băng tần (template-band-list.php, page-band-list.php, page- {id} .php, page.php, index.php, shortcode)
- Danh sách album (template-album-list.php, page-album-list.php, page- {id} .php, page.php, index.php, shortcode)
- Dòng thời gian của album (template-album-timeline.php, page-album-timeline.php, page- {id} .php, page.php, index.php, shortcode)
Điều quan trọng là có một số bản trình bày mặc định cho các loại bài đăng này vì các tệp mẫu mặc định sẽ không hiển thị tất cả thông tin cần thiết cho từng loại bài đăng. Chẳng hạn, chủ đề Twenty Eleven, theo mặc định, sẽ chỉ hiển thị tên, danh mục, mô tả và ngày đăng cho một album. Không hữu ích cho một album. Tôi muốn cung cấp một mẫu bài đăng duy nhất trong ban nhạc, ngày phát hành, nhãn đĩa, phiên bản album, bản nhạc, v.v. Là một nhà phát triển plugin tôi sẽ cảm thấy rằng điều đó rất quan trọng để cung cấp. Tôi biết mẫu sẽ không phù hợp với mọi chủ đề, nhưng cần có một số mặc định có thể được tích hợp thêm với chủ đề của người dùng.
Một lần nữa, tôi tò mò về cách tốt nhất để xử lý tình huống này là gì? Tôi nghĩ rằng bạn có thể làm bất kỳ điều sau đây.
Mã ngắn
Shortcodes có thể được sử dụng như một cách rất linh hoạt và thân thiện với người dùng để cho phép những người không phải nhà phát triển thêm một ban nhạc, album, bản nhạc, danh sách ban nhạc, v.v. ở bất cứ đâu trong trang web. Nó sẽ hữu ích cho việc làm nổi bật các băng tần trên các trang cụ thể hoặc tạo các trang riêng biệt cho từng băng tần (không hiệu quả lắm, nhưng một số người dùng tiếp cận mọi thứ theo cách này). Shortcode sẽ tạo HTML, được gắn với tệp CSS được cung cấp sẽ cung cấp chế độ xem mặc định đẹp cho dữ liệu mong muốn. Mọi thứ sẽ được chứa trong các tập tin plugin và không cần phải làm gì với chủ đề.
Tệp mẫu
Các plugin cũng có thể xuất xưởng với các tệp mẫu. Các tệp mẫu có thể được đánh dấu và tạo kiểu cho chế độ xem mặc định đẹp. Bạn có thể cung cấp hướng dẫn cho người dùng của mình để di chuyển các tệp vào thư mục chủ đề để chủ đề sẽ tìm thấy các mẫu phù hợp khi các loại bài đăng được xem. Bạn thậm chí có thể cung cấp một giao diện để cho phép người dùng di chuyển các tệp chỉ bằng một cú nhấp chuột (lưu ý: Tôi sẽ không tạo các tệp trong thư mục chủ đề của người dùng khi kích hoạt vì thêm tệp vào chủ đề của họ mà không khởi tạo nó là xấu) .
Bạn cũng có thể sử dụng các bộ lọc để sử dụng các tệp này mà không cần di chuyển chúng ra khỏi thư mục plugin, giữ mọi thứ độc lập. Tôi đã thấy các bộ lọc "template_include" và "{$ type} _template" được sử dụng cho mục đích này. Trên thực tế, bạn có thể sử dụng các mẫu từ thư mục chủ đề và nếu chúng không có mặt, bạn có thể quay lại các bộ lọc này để cung cấp chế độ xem mặc định.
Câu hỏi
Tôi muốn biết những gì người khác nghĩ là cách thực hành tốt nhất cho những tình huống này, nếu các ý tưởng được trình bày có vấn đề theo bất kỳ cách nào và bất kỳ giải pháp thay thế nào mà tôi không bao gồm.
Cảm ơn bạn!