Как использовать функцию wp_get_active_and_valid_plugins() в WordPress

WP_GET_ACTIVE_AND_VALID_PLUGINS() │ WP 3.0.0

Функция wp_get_active_and_valid_plugins() позволяет получить массив активных и действительных файлов плагинов на вашем сайте WordPress.

Важно знать

  • Во время обновления или установки WordPress функция не возвращает плагины.
  • По умолчанию плагины находятся в папке wp-content/plugins. Если вы хотите изменить папку для плагинов, вы можете задать параметры WP_PLUGIN_DIR и WP_PLUGIN_URL в файле wp-config.php.
  • Эта функция предназначена для внутреннего использования, поэтому не рекомендуется использовать её в вашем коде.

Использует:

  • validate_file()
  • get_option()

Нет хуков.

Возвращаемое значение

Функция возвращает массив строк, где каждая строка — это путь к файлу плагина относительно директории плагинов.

Применение

Чтобы использовать эту функцию, просто вызовите её:

wp_get_active_and_valid_plugins();

Пример

Вот пример того, как работает функция:

$list = wp_get_active_and_valid_plugins();

print_r($list);

Ожидаемый результат:

Array (
    [0] => F:serverwwwexample.com/wp-content/plugins/query-monitor/query-monitor.php
    [1] => F:serverwwwexample.com/wp-content/plugins/advanced-custom-fields-pro/acf.php
    [2] => F:serverwwwexample.com/wp-content/plugins/akismet/akismet.php
    [3] => F:serverwwwexample.com/wp-content/plugins/crypto-currencies-live-charts/crypto-currencies-live-charts.php
    [4] => F:serverwwwexample.com/wp-content/plugins/cryptocurrency-reviews/cryptocurrency-reviews.php
    [5] => F:serverwwwexample.com/wp-content/plugins/cyr3lat/cyr-to-lat.php
    [6] => F:serverwwwexample.com/wp-content/plugins/democracy-poll/democracy.php
    [7] => F:serverwwwexample.com/wp-content/plugins/font-awesome-4-menus/n9m-font-awesome-4.php
    [8] => F:serverwwwexample.com/wp-content/plugins/image-watermark/image-watermark.php
    [9] => F:serverwwwexample.com/wp-content/plugins/luckywp-scripts-control/luckywp-scripts-control.php
    [10] => F:serverwwwexample.com/wp-content/plugins/profunctions/profunctions.php
    [11] => F:serverwwwexample.com/wp-content/plugins/tablepress/tablepress.php
    [12] => F:serverwwwexample.com/wp-content/plugins/widget-logic/widget_logic.php
    [13] => F:serverwwwexample.com/wp-content/plugins/wp-subscribe/wp-subscribe.php
)

Изменения

  • Начиная с версии 3.0.0, функция была добавлена в WordPress.

Код функции

Вот как выглядит код функции в файле wp-includes/load.php:


function wp_get_active_and_valid_plugins() {
$plugins = array();
$active_plugins = (array) get_option( 'active_plugins', array() );

// Проверяем наличие файла my-hacks.php, если эта опция включена
if ( get_option( 'hack_file' ) && file_exists( ABSPATH . 'my-hacks.php' ) ) {
    _deprecated_file( 'my-hacks.php', '1.5.0' );
    array_unshift( $plugins, ABSPATH . 'my-hacks.php' );
}

if ( empty( $active_plugins ) || wp_installing() ) {
    return $plugins;
}

$network_plugins = is_multisite() ? wp_get_active_network_plugins() : false;

foreach ( $active_plugins as $plugin ) {
    if ( ! validate_file( $plugin ) 
        && str_ends_with( $plugin, '.php' ) 
        && file_exists( WP_PLUGIN_DIR . '/' . $plugin ) 
        && ( ! $network_plugins || ! in_array( WP_PLUGIN_DIR . '/' . $plugin, $network_plugins, true ) )
    ) {
        $plugins[] = WP_PLUGIN_DIR . '/' . $plugin;
    }
}

if ( wp_is_recovery_mode() ) {
    $plugins = wp_skip_paused_plugins( $plugins );
}

return $plugins;

}

Похожие функции

Некоторые функции, связанные с плагинами:

  • activate_plugins()
  • deactivate_plugins()
  • get_plugin_data()
  • get_plugins()
  • is_plugin_active()
  • plugin_basename()
  • validate_plugin_requirements()

Функции, связанные с хуками и плагинами:

  • add_screen_option()
  • content_url()
  • get_file_data()
  • plugin_dir_path()
  • plugin_dir_url()
  • plugins_url()
  • register_activation_hook()
  • register_deactivation_hook()
  • register_uninstall_hook()

Эта информация поможет вам лучше понять, как использовать и взаимодействовать с плагинами в WordPress.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *