Ответ
Для отключения React-приложения в WordPress можно использовать несколько подходов:
- Удаление скрипта/стилей через
wp_dequeue_script()иwp_dequeue_style()в functions.php:
function disable_react_app() {
wp_dequeue_script('react-app-handle');
wp_dequeue_style('react-app-style');
}
add_action('wp_enqueue_scripts', 'disable_react_app', 100);
- Условная загрузка через проверку шорткода/блока:
function conditional_react_load() {
if (!has_block('custom/react-block') && !has_shortcode(get_the_content(), 'react_shortcode')) {
wp_dequeue_script('react-app-handle');
}
}
- Плагин-переключатель - создать опцию в админке и проверять её перед загрузкой ассетов.
Для полного удаления нужно также очистить HTML-контейнер приложения, если он рендерится сервером.
Ответ 18+ 🔞
Да ты послушай, что за дичь творится с этими твоими React-приложениями в WordPress! Сидит оно, сука, как чужой глист в кишках, и ни хуя не выковыряешь. Ну ладно, раз уж полез, сейчас расскажу, как его нахер отключить, чтобы и духу не было.
Первый способ, самый тупой и прямолинейный, как удар кирпичом по лбу. Берёшь и просто выпиливаешь скрипты со стилями из головы. В этот самый functions.php суёшь вот такую простыню:
function disable_react_app() {
wp_dequeue_script('react-app-handle');
wp_dequeue_style('react-app-style');
}
add_action('wp_enqueue_scripts', 'disable_react_app', 100);
Вот и всё, ёпта! Сработает на раз. Главное — знать, как эта падла называется (этот самый react-app-handle), а то будешь как Герасим — мычать, а нихуя не выйдет.
Второй способ — для хитрожопых. Может, тебе не везде его выключать надо, а только там, где он нихуя не нужен? Ну, типа, нет на странице специального блока или шорткода — нет и скрипта. Логично же, блядь!
function conditional_react_load() {
if (!has_block('custom/react-block') && !has_shortcode(get_the_content(), 'react_shortcode')) {
wp_dequeue_script('react-app-handle');
}
}
Подключил эту проверку — и спокоен, как удав. Скрипт будет грузиться только там, где реально требуется, а не на каждой странице про «Мою прекрасную няню».
Ну и третий вариант — для параноиков с админкой. Сделай себе переключатель, прям как выключатель света в сортире. Плагин запили или поле в настройках темы. Типа «Включить реакт-приложение? [ ] Да [✓] Нет, нахуй». И потом в коде смотришь:
if (get_option('disable_that_react_shit') === true) {
// Все действия по выпиливанию
}
Красота, блядь! Сам себе хозяин. Захотел — включил, захотел — вырубил, не лезя в код.
А, и да, самое главное, ебать мои старые костыли, не забудь! Если эта React-шняга ещё и на сервере что-то рендерит, оставляя после себя в HTML какой-нибудь <div id="root">...</div>, то его тоже надо зачистить. А то будет висеть, как памятник твоей глупости — пустой и бесполезный. Удали его через тот же хук или фильтр, или на фронте скриптом, если совсем припёрло.
Вот и вся наука. Выбирай, что тебе ближе по душе, и — впердолить!