Làm cách nào để tạo get_template_part luôn kiểm tra chủ đề con trước?


8

Làm cách nào tôi có thể buộc WP luôn kiểm tra thư mục chủ đề con trước khi chạy get_template_part?

Ví dụ: chủ đề con tải get_template_part('content', 'inventory')trong single.php. Bởi vì tất cả các chủ đề con (và có rất nhiều) chia sẻ cùng một cơ sở mẫu khoảng không quảng cáo chung, tệp content-inventory.phpnằm trong chủ đề chính. Càng xa càng tốt.

Tôi muốn thêm một phần nhỏ vào mẫu kho lưu trữ sẽ là duy nhất cho mỗi chủ đề con. Thêm get_template_part('content', 'inventory-special')vào content-inventory.phpsẽ không kiểm tra thư mục chủ đề con trước.


3
Đối với hai bạn đã bỏ phiếu trả lời của tôi và không bình luận tại sao, cảm ơn vì không có gì. Làm thế nào một người nào đó giả sử để cải thiện bản thân với những lời chỉ trích tiêu cực?
m-torin

Câu trả lời:


5

Nó làm, theo mặc định. Các get_template_part()sử dụng chức năng locate_template()mà thác thông qua các template file trong theo thứ tự đặc hiệu và stylesheetpath / templatepath.

Vì vậy, nếu Chủ đề con của bạn bao gồm một content-inventory.php, thì get_template_part()sẽ bao gồm nó; nếu không, thì nó sẽ tìm content-inventory.phptrong Theme cha. Nếu nó không tìm thấy nó, thì nó sẽ tìm kiếm content.phpđầu tiên ở trẻ, sau đó là ở cha mẹ.

BIÊN TẬP:

Hãy cố gắng hiểu ý của bạn; vui lòng làm rõ nếu tôi hiểu nhầm ...

Bạn muốn bao gồm một tệp phần mẫu mới trong tệp mẫu Parent-Theme được gọi content-inventory.php, phải không?

Cách duy nhất, AFAIK, mà bạn có thể làm là sao chép content-inventory.phpvào Chủ đề con của bạn , sau đó thêm get_template_part()cuộc gọi mới khi cần.

Nếu một file có tên content-inventory.phpđược bao gồm trong cả Phụ Huynh các child theme, sau đó WordPress sẽ luôn sử dụng Child Theme phiên bản, nếu bao gồm sử dụng get_template_part().


@Kaiser, @Chip Bennett: WP rõ ràng sẽ kiểm tra chủ đề gốc cho content-inventory.php. Codex và kinh nghiệm đơn giản làm cho điều đó rõ ràng. Tuy nhiên, nếu tệp đang được tìm kiếm (cấp 2) nằm trong thư mục chủ đề gốc, WP không kiểm tra lại chủ đề con cho một get_template_parttệp có trong tệp đang tìm kiếm (bao gồm tầng thứ ba). Điều này đã làm việc khác nhau cho bạn?
m-torin

Tôi không hiểu câu hỏi / vấn đề của bạn. Đối với bất kỳ tên tệp mẫu đã cho nào, WordPress luôn kiểm tra Chủ đề con trước tiên . Bạn có thể giải thích ý của bạn về các tập tin hạng hai và hạng ba không?
Chip Bennett

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.