get_template_directory_uri chỉ vào chủ đề gốc không phải chủ đề con


35

Vấn đề tôi gặp phải là get_template_directory_uri đang trỏ đến chủ đề chính như site/wp-content/themes/twentythirteen/myGallery/gallery_functions_include.php

nhưng tôi muốn nó chỉ vào chủ đề con của tôi site/wp-content/themes/child-twentythirteen/myGallery/gallery_functions_include.php

những gì tôi đang sử dụng là include (TEMPLATEPATH . '/myGallery/gallery_functions_include.php');

Câu trả lời:


70

get_template_directory_uri() sẽ luôn trả về URI của chủ đề gốc hiện tại.

Để có được URI chủ đề con thay thế, bạn cần sử dụng get_stylesheet_directory_uri().

Bạn có thể tìm thấy những thứ này trong tài liệu , cùng với một danh sách các chức năng hữu ích khác để có được các vị trí thư mục chủ đề khác nhau.


Nếu bạn thích sử dụng một hằng, thì TEMPLATEPATHgần giống với cách gọi get_template_directory()(tức là chủ đề gốc) và STYLESHEETPATHgần giống với cách gọi get_stylesheet_directory()(tức là chủ đề con).

Các hằng số này được đặt bởi lõi WordPress wp-includes/default-constants.phpvà về cơ bản trông như thế này:

define('TEMPLATEPATH', get_template_directory());
...
define('STYLESHEETPATH', get_stylesheet_directory());

Nếu không có chủ đề con, thì cả hai chức năng 'mẫu' 'biểu định kiểu' sẽ trả về vị trí chủ đề gốc.

Lưu ý sự khác biệt giữa các hàm này và các hàm kết thúc bằng _uri- những hàm này sẽ trả về đường dẫn máy chủ tuyệt đối (ví dụ /home/example/public_html/wp-content/yourtheme:), trong khi các _urihàm sẽ trả về địa chỉ công cộng (còn gọi là URL) - vd. http://example.com/wp-content/themes/yourtheme.


những gì về bao gồm (TEMPLATEPATH. '/myGallery/gallery_fifts_include.php'); cái này cũng vào thư mục mẹ
Elroy Fernandes

@ElroyFernandes Tôi đã thêm câu này vào câu trả lời của mình. Thay vào đó, STYLESHEETPATH ​​là hằng số bạn muốn
Tim Malone

2
Cảm ơn vì đã trả lời câu hỏi thay vì chỉ nói RTM. Điều này xuất hiện đầu tiên trong kết quả tìm kiếm của tôi.
rinogo

2
Câu trả lời hay nhưng đặt tên không hay trên phần của WordPress - nó không chỉ dành cho bảng định kiểu, mà còn cho JS, tài sản, bao gồm v.v.
Paul Feakins

1
@PaulFeakins Đừng bắt đầu đặt tên không nhất quán trong WordPress - đó là một con đường dài và lộng gió dẫn những người hiểu biết về đâu! ;)
Tim Malone

0

Bạn nên di chuyển các mẫu tùy chỉnh của mình, những mẫu không được kiểm soát bởi chủ đề đang hoạt động sang thư mục con.

Giữ chủ đề tách biệt với tất cả các tệp tùy chỉnh theo cách này có thể cập nhật chủ đề mà không làm mất công việc tùy chỉnh của bạn.

Chủ đề ngoài luồng của bạn sống ở đây
------------------------------------
\\ Trang web \ wp-content \ Themes \ some_theme
Chủ đề con bạn sống ở đây
---------------------------
\\ Trang web \ wp-content \ Themes \ some_theme-child

Các kiểu và mẫu tùy chỉnh của bạn và tất cả bao gồm của bạn (những thứ như javascript tùy chỉnh, hình ảnh không được lưu vào WP, phông chữ tùy chỉnh, tệp dữ liệu json và bất kỳ plugin nào bạn có thể yêu cầu) nên được chuyển sang thư mục con NGOÀI của chủ đề.

\ Themes \ some_theme
\ Themes \ some_theme-child \ (tất cả các tệp mẫu php tùy chỉnh của bạn tại đây)
\ Themes \ some_theme-child \ hình ảnh
\ Themes \ some_theme-child \ bao gồm 
\ Themes \ some_theme-child \ ngôn ngữ
\ Themes \ some_theme-child \ json 
\ Themes \ some_theme-child \ style

Đối với các trang kiểu tùy chỉnh của bạn ( không phải là kiểu ghi đè của chủ đề.css), hãy liệt kê với wp_enqueue_style ('some-css', get_stylesheet_directory () . '/ Style / some.css', false, '0.0.1', 'all');

Sử dụng get_stylesheet_directory_uri () với các cuộc gọi xhr của bạn, v.v.

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.