get_template_directory () so với bloginfo ('template_directory') so với TEMPLATEPATH


16

Tôi đã đọc bài viết này: Những lỗi phát triển WordPress phổ biến và Cách khắc phục chúng , và trong đó, tác giả cho biết:

Lấy vị trí chủ đề: Nếu bạn đang sử dụng TEMPLATEPATH hoặc bloginfo ('template_directory'). Dừng lại! Bạn nên sử dụng get_template_directory () rất hữu ích như trong các ví dụ của tôi ở trên.

Nhưng anh không nói rõ. Có chuyện gì vậy bloginfo()?

Câu trả lời:


17

Để làm cho một câu chuyện dài ngắn: get_bloginfo( 'template_directory' )get_bloginfo( 'template_url' )chỉ cần trở lại get_template_directory_uri().

Vì vậy, bạn có thể tắt cuộc gọi thứ hai đó một cách đơn giản bằng cách tham khảo trực tiếp vào thẻ mẫu sau.

Tham khảo nguồn choget_bloginfo() .

Một vài người khác:

  • 'url' => home_url()
  • 'wpurl' => site_url()
  • 'stylesheet_url' => get_stylesheet_uri()
  • 'stylesheet_directory' => get_stylesheet_directory_uri()
  • 'locale' => get_locale()

Biên tập

Cũng lưu ý: TEMPLATEPATHSTYLESHEETPATHđược dự kiến ​​không dùng nữa , vì vậy tốt hơn hết là bạn nên thay thế chúng ngay bây giờ, bằng get_template_directory()get_stylesheet_directory(), tương ứng.

Chỉnh sửa 2

Re: bình luận này

Chỉ là những gì tôi sắp nói :). Tôi muốn thêm rằng get_template_directory()trả về đường dẫn và get_template_directory_uri()url. Vì vậy, tác giả không nhất quán: get_bloginfo( 'template_directory' )get_template_directory()trả lại những thứ khác nhau!

Tham khảo lại nguồn :)

case 'template_directory':
case 'template_url':
    $output = get_template_directory_uri();
    break;

Re: bình luận này:

Một lưu ý khi phát triển các chủ đề con bạn sẽ cần sử dụng get_stylesheet_directory()một cách rõ ràng. Ai đó sửa tôi nếu tôi sai.

Đúng, nhưng đó luôn là trường hợp. get_bloginfo()không trả lại bất cứ điều gì liên quan đến get_stylesheet_directory(). Nó chỉ trở lại get_stylesheet_uri()get_stylesheet_directory_uri().


Một cảnh báo khi phát triển các chủ đề con bạn sẽ cần sử dụng get_stylesheet_directory () một cách rõ ràng. Ai đó sửa tôi nếu tôi sai.
Steve

Cảm ơn! Tôi chỉ tự hỏi tại sao WP có nhiều chức năng như vậy mà chỉ gọi một chức năng khác, mà sau đó chúng tôi được cho là không sử dụng ...
coopersita

Trong trường hợp này, tôi nghĩ rằng lý do đơn giản là để duy trì khả năng tương thích ngược với các get_bloginfo()tham số.
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.