Tạo một loại bài đăng tùy chỉnh như một plugin? Tại sao?


7

Tôi đã thử nghiệm tạo Loại bài đăng tùy chỉnh dưới dạng plugin (vì tôi đã thấy đề xuất này ở nhiều nơi).

Nhưng tôi có một câu hỏi không phải về cách thức , mà là lý do tại sao xây dựng CPT như một plugin.

Có ... Thêm CPT làm plugin giúp chức năng của tôi tốt và gọn gàng.

Nhưng...

  1. Giả sử tôi đã kích hoạt has_archivetôi vẫn cần tạo archive-cpt.php, phải không?
  2. Ngoài ra: Để hiển thị CPT tôi cần tạo một vòng lặp tùy chỉnh, vì vậy tôi vẫn cần tạo single-cpt.php... đúng không?
  3. Và những tập tin này cần phải được tạo ra trong chủ đề , phải không?

Nếu tôi hiểu điều này một cách chính xác,

  1. Nếu tôi tắt plugin: tôi vẫn phải xóa (hoặc ẩn hoặc một cái gì đó) archive-cpt.phpsingle-cpt.phpcác trang.
  2. Nếu tôi chuyển Chủ đề : Tôi vẫn phải thêm hai trang đó vào chủ đề mới. Đúng?

Tôi thậm chí chưa từng chạm vào vấn đề thêm CPT vào vòng lặp mặc định (và nó liên quan đến các cpt dựa trên plugin).

Vậy, tại sao một plugin CPT ?


Tất nhiên, sau khi viết câu hỏi này tôi đã thấy bài đăng này . Nhưng tôi vẫn không chắc chắn. Câu trả lời được chọn có được coi là "Thực hành tốt nhất" không? Xin tư vấn.
ngủ

1
bạn không cần các mẫu cụ thể cho các chế độ xem cpt đơn và lưu trữ, chỉ khi bạn muốn chúng được trình bày khác với các mẫu đơn và lưu trữ mà chủ đề của bạn rơi trở lại, có thể chỉ là index.php trong một số trường hợp.
Milo

Câu trả lời:


4

Câu trả lời của toscho là chính xác vì lý do kỹ thuật để xác định CPT của bạn trong một plugin, nhưng đối với tôi, phần lớn câu hỏi của bạn bắt nguồn từ sự hiểu lầm về hệ thống phân cấp mẫu. Hầu như, nhưng không hoàn toàn, mọi tệp mẫu mà bạn đã thấy là tùy chọn.

Ngoại trừ tệp mẫu index.php cơ bản, nhà phát triển Chủ đề có thể chọn xem họ có muốn triển khai tệp mẫu cụ thể hay không. Nếu WordPress không thể tìm thấy tệp mẫu có tên phù hợp, nó sẽ bỏ qua tên tệp tiếp theo trong cấu trúc phân cấp. Nếu WordPress không thể tìm thấy bất kỳ tệp mẫu phù hợp nào, index.php (tệp mẫu trang chủ của Chủ đề) sẽ được sử dụng.

http://codex.wordpress.org/Template_HVELy

WordPress sẽ sử dụng các tệp chuyên biệt cụ thể nếu chúng tồn tại nhưng quay lại tệp khác - cuối cùng index.php- nếu không có tệp chuyên biệt. Chủ đề của bạn không phải triển khai bất cứ điều gì đặc biệt để giải quyết hoặc bù đắp cho CPT của plugin của bạn. Các chủ đề có thể nhưng không phải .

  1. Giả sử tôi đã kích hoạt has_archivetôi vẫn cần tạo archive-cpt.php, phải không?

Số archive.phpsẽ được sử dụng và nếu thất bại thìindex.php

  1. Ngoài ra: Để hiển thị CPT tôi cần tạo một vòng lặp tùy chỉnh, vì vậy tôi vẫn cần tạo single-cpt.php... đúng không?

Một lần nữa, không. Lý do tương tự. single.phpsẽ được sử dụng và nếu không index.php.

  1. Và những tập tin này cần phải được tạo ra trong chủ đề , phải không?

Có, nhưng chúng là tùy chọn. Bạn không cần chúng ở tất cả.

  1. Nếu tôi tắt plugin: tôi vẫn phải xóa (hoặc ẩn hoặc một cái gì đó) archive-cpt.phpsingle-cpt.phpcác trang.

Không. Bạn không cần phải làm gì cả. Các mẫu sẽ không được sử dụng.

  1. Nếu tôi chuyển Chủ đề : Tôi vẫn phải thêm hai trang đó vào chủ đề mới. Đúng?

Sai lầm. Các mẫu là tùy chọn. Bạn chỉ cần chúng nếu bạn muốn một màn hình tùy chỉnh cho loại bài đăng.

Khi bạn hiểu rằng chủ đề và CPT không được kết nối mật thiết như câu hỏi của bạn có vẻ như vậy, thì một số logic khác sẽ có ý nghĩa hơn một chút.


ĐỒNG Ý. Giờ thì tôi đã hiểu.
ngủ

3

Chủ đề không được tải khi hằng số SHORTINITđược đặt thành TRUE(trình xử lý, trình nhập hoặc API tùy chỉnh AJAX), không có bài đăng nào có thể được thêm vào loại bài đăng hoặc phân loại tùy chỉnh như vậy.

Các mẫu là các khung nhìn cho nội dung tùy chỉnh, chúng không nên xác định hoặc dựa vào logic.

Ngoài ra, sau khi chuyển đổi chủ đề, người dùng không thể truy cập và thay đổi nội dung loại bài đăng nữa, vì sẽ không có giao diện nếu không đăng ký.

Sau khi tắt plugin, bạn không phải thay đổi chủ đề. Các mẫu không được sử dụng nữa.

Cập nhật: Một ưu điểm khác của plugin là khả năng kích hoạt chúng trên toàn mạng . Tôi là nhà phát triển chính cho Báo chí đa ngôn ngữ và chúng tôi cung cấp cho người dùng một tính năng để dịch và kết nối các bài đăng loại bài đăng tùy chỉnh. Nhưng điều này không thể hoạt động nếu chúng bị ràng buộc với một chủ đề, bởi vì một chủ đề luôn hoạt động trên mỗi trang web, không phải trên toàn bộ mạng. Các loại bài đăng chủ đề thực sự khó dịch.

Xem thêm: Nơi để đặt mã của tôi: plugin hoặc hàm.php?


"Chủ đề không được tải khi SHORTINIT không đổi được đặt thành TRUE (trình xử lý AJAX tùy chỉnh, nhà nhập khẩu hoặc API), không có bài đăng nào có thể được thêm vào loại bài đăng hoặc phân loại tùy chỉnh như vậy." ??? Tôi không biết điều đó có nghĩa là gì (chưa). Tôi mới tham gia vào CPT. Vui lòng giải thích.
ngủ

"Nơi để đặt mã của tôi: plugin hoặc hàm.php?" - Thảo luận tuyệt vời. Có vẻ như tôi đã vấp vào tổ của Hornet.
ngủ

Ok, vậy không có câu trả lời "đơn giản" cho câu hỏi này, nhỉ? Liên kết dường như cung cấp thông tin tốt nhất về cách "quyết định" nơi đặt CPT (dựa trên một số biến).
ngủ

Câu trả lời đơn giản là: Các loại bài đăng tùy chỉnh hoạt động tốt hơn trong các plugin.
fuxia
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.