Không thể kiểm tra xem plugin có hoạt động không


9

Tôi đang làm việc trên một chủ đề tùy chỉnh bằng ACF. Tôi muốn kiểm tra xem plugin có hoạt động hay không. Tôi đang sử dụng mã này:

<?php include_once( ABSPATH . 'wp-content/plugins/advanced-custom-fields-pro/acf.php' ); 
if ( is_plugin_active( 'advanced-custom-fields-pro/acf.php' ) ) {

echo "hi";

} ?>

Tuy nhiên, tôi nhận được lỗi sau:

Lỗi nghiêm trọng: Gọi hàm không xác định is_plugin_active () trong /Users/johann/htdocs/clarity_v21/wp-content/theme/clarity/temsheet/header.php trên dòng 21

Bất kì ý kiến ​​nào có thể sai?


Vì vậy, dựa trên câu trả lời tôi đã thử:

if( class_exists('acf') ) { 

  if (($header_style)=='style2') {

}

va no đa hoạt động! Vì vậy, về cơ bản, giải pháp là cố gắng tìm một lớp có liên quan đến plugin bạn đang cố kiểm tra. Trong trường hợp này, lớp "acf" dành riêng cho plugin Trường tùy chỉnh nâng cao và cho phép tôi chạy điều kiện chỉ khi plugin hoạt động.


1
Tôi sẽ MẠNH khuyên chống lại bao gồm một file plugin từ bên trong một chủ đề như thế. Chức năng đó cũng chỉ khả dụng trong khu vực quản trị
Tom J Nowell

Câu trả lời:


17

Hãy thử kiểm tra class_exists :

<?php 
     if( class_exists('acf') ) {
        echo "hi";
     }
?>

Đây là giải pháp cho vấn đề của tôi. Kiểm tra cập nhật câu hỏi.
Johann

7

is_plugin_active()chỉ có sẵn trong khu vực quản trị. Bạn cần bao gồm plugin.phptệp lõi trong giao diện người dùng để sử dụng chức năng này.

Từ tài liệu WordPress

LƯU Ý: được xác định trong wp-admin / gồm / plugin.php, do đó, điều này chỉ khả dụng trong các trang quản trị và mọi tham chiếu đến chức năng này phải được nối với admin_init hoặc hành động sau. Nếu bạn muốn sử dụng chức năng này từ trong một mẫu, bạn sẽ cần yêu cầu plugin.php theo cách thủ công, một ví dụ dưới đây.

Vì vậy, nó sẽ giống như

<?php include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); 
if ( is_plugin_active( 'advanced-custom-fields-pro/acf.php' ) ) {
    echo "hi";
} ?>
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.