检查插件是否已经存在,如果不存在,使用我的插件中的文件


Check if a plugin already exists, if not, use files within my plugin?

我正在创建一个需要高级自定义字段的插件,这里有关于如何添加它的文档,代码如下:

// 1. customize ACF path
function my_acf_settings_path( $path ) {
    // update path
    $path = plugin_dir_path( __FILE__ ) . 'lib/advanced-custom-fields/';
    // return
    return $path;
}
add_filter('acf/settings/path', 'my_acf_settings_path');

// 2. customize ACF dir
function my_acf_settings_dir( $dir ) {
    // update path
    $dir = plugin_dir_url( __FILE__ ) . 'lib/advanced-custom-fields/';
    // return
    return $dir;
}
add_filter('acf/settings/dir', 'my_acf_settings_dir');

// 3. Hide ACF field group menu item
add_filter('acf/settings/show_admin', '__return_false');

/**
* Set Advanced Custom Fields to Lite mode, so it does not appear
* in the WordPress Administration Menu
*/
define( 'ACF_LITE', true );

// 4. Include ACF
include_once( plugin_dir_path( __FILE__ ) . 'lib/advanced-custom-fields/acf.php' );

问题是我需要检查是否ACF插件已经存在之前,我包括它在我的插件-因为有冲突,否则。我该怎么做呢?

1)检查该插件是否已经存在于Wordpress中(有基本版和专业版)。

2)如果它存在,则使用该版本,如果它不存在,则使用我的插件中的版本(即使用上面的代码)

我认为is_plugin_active()符合要求,因为你只关心它是否安装了激活:

<?php
    if ( is_plugin_active('advanced-custom-fields') ) {
        // do something
    }
?>

如果您需要检查它是否已安装(无论是否激活),您还可以检查它是否未激活

您可以使用

检查插件是否已经安装
if( class_exists('acf'){
  //acf plugin already exist;
  //do something.
}