Nhận thư mục plugin từ một chủ đề


8

Có ai biết một cách không hack để có được đường dẫn thư mục plugin từ trong hàm.php của một chủ đề không?

Tôi đã sử dụng plugin_dir_path ( TẬP_TIN ), nhưng vì nó được gọi trong hàm.php của chủ đề nên nó trả về đường dẫn đến tệp đó. Không phải thư mục plugin. Tôi có thể xâu chuỗi nó và thêm đường dẫn bổ trợ, nhưng điều đó cảm thấy gần như tồi tệ như mã hóa toàn bộ đường dẫn.

Tôi đã có nó làm việc bằng cách sử dụng:

require_once( ABSPATH .'/wp-content/plugins/ehu-events/event-widget.php' );

Nhưng tôi biết điều đó quá cũ và sai và có lẽ tôi sẽ bị xa lánh khỏi cộng đồng wordpress vì đã sử dụng nó!

Có một chức năng wordpress tiêu chuẩn tôi có thể sử dụng cho việc này?

Câu trả lời:


18

Có lẽ những gì bạn đang tìm kiếm là:

WP_PLUGIN_DIR  // full path, no trailing slash
WP_PLUGIN_URL  // full url, no trailing slash

Xem tài liệu


1
Hãy nhớ rằng có những bộ lọc có thể di chuyển vị trí ở nơi khác. Đây có thể là đặt cược tốt nhất, nhưng nó chắc chắn không phải là một giả định tiết kiệm.
kaiser

2
Tài liệu được liên kết nói như sau về các hằng số: «Chúng không nên được sử dụng trực tiếp bởi các plugin hoặc chủ đề, nhưng được liệt kê ở đây để hoàn thiện.» Vì vậy, có lẽ không nên đề xuất làm giải pháp, khi lời khuyên là không sử dụng chúng trong chủ đề của bạn.
Gchtr

8

Tôi tin rằng điều này có thể đáng tin cậy hơn là phụ thuộc vào hằng số.

$url = plugins_url();
$path = parse_url($url);
var_dump($path['path']);

Lý do tôi nghi ngờ nó có thể đáng tin cậy hơn là plugins_urlhàm xem xét cả WPMU_PLUGIN_URLWP_PLUGIN_URLhằng số và cũng sẽ tôn trọng plugins_urlbộ lọc.


1
Đây là phương pháp không hack nhất và nó nên là câu trả lời tốt nhất.
CGeorges 15/03/2016

Còn các plugin có trong chủ đề thì sao?
brett
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.