Как я могу узнать, активен ли конкретный плагин в WordPress из JavaScript? - PullRequest
0 голосов
/ 13 июня 2019

Я строю динамический блок Гутенберга, который должен отображаться по-разному в зависимости от активных плагинов.Я знаю, что есть функция PHP is_plugin_active.Есть ли эквивалент или «обходной путь», чтобы узнать это из JavaScript?Или мне нужно передать его в JS из PHP?

1 Ответ

1 голос
/ 13 июня 2019

Как сказал Тони, вы можете использовать локализацию для передачи данных из PHP в ваш сценарий.

Еще один способ сделать это - подключиться к фильтру body_class filter и добавить пользовательские классы CSSесли один или несколько плагинов активны:

/**
 * Adds additional CSS classes to the body tag if a given plugin is active.
 *
 * @param  array  $classes  An array of CSS classes that will be added to the body tag
 * @return array  $classes  An array of CSS classes that will be added to the body tag
 */
function wp76641_active_plugins_body_classes($classes) {
    include_once( ABSPATH . 'wp-admin/includes/plugin.php' );

    if ( is_plugin_active('plugin-x-directory/plugin-x-file.php') ) {
        $classes[] = 'plugin-x-is-active';
    }

    return $classes;
}
add_filter('body_class', 'wp76641_active_plugins_body_classes');

Тогда в вашем JS вы можете сделать что-то вроде этого:

if ( document.body.classList.contains('plugin-x-is-active') ) {
    // Do your thing
}
...