TechBlogSD - Все для WordPress и WEB разработки
WEB и WordPress инструкции, новости, обзоры тем и плагинов

Как включить или отключить плагин WordPress на определенных страницах сайта?

1 139

Когда я собирал сайт для моего плагина галереи Jusified Image Grid, я столкнулся с серьезной проблемой. Сайт начал накапливать много плагинов, просто чтобы продемонстрировать их совместимость на специальных демонстрационных страницах. Такие вещи, как плагины WooCommerce или Lightbox, загромождали не только мою админку, но и активную часть интерфейса, на всех страницах. Этот хаос повредил производительности, я мог сказать, даже не измеряя ее. Должен быть способ манипулировать списком активных плагинов, в частности, чтобы отключить плагин WordPress на определенных страницах. Или еще лучше, включайте их только там, где это необходимо. Следующий метод позволяет использовать множество плагинов для установки WordPress без существенного снижения производительности.

Концепция Must Use Plugins

Подход использует концепцию WordPress, которая называется Must Use Plugins. Когда вы посмотрите на WordPress loading sequenceзапущенными действиями, а не с загруженными файлами), вы поймете, почему. Это первое действие, которое запускается, поэтому Must Use Plugins загружается так рано, что вы можете направить остальную часть потока загрузки любым удобным вам способом, например, отключить плагин WordPress. В двух словах, Плагины Must Use – это отдельные файлы, живущие в WordPress.

Я буду называть это создание управления плагином отныне. Я покажу вам, как это работает, функция за функцией. Вы можете скачать полный плагин бесплатно в конце статьи. Однако я настоятельно рекомендую вам узнать или хотя бы понять, что здесь происходит, поскольку это не решение для автопилота. Он имеет возможность заблокировать любой плагин, в активированном или отключенном состоянии. Если вы не знаете, что происходит, это может привести к разочарованию.

Код для отключения плагина WordPress на определенных страницах

Итак, управление плагином начинается с минимального заголовка плагина, и это все, что нужно, чтобы сделать его плагином WordPress! (Как указано, когда я рекомендовал создавать плагины для добавления фрагментов.)

Первая функция, где вы можете изменить правила, а именно $enabling_rulesи $disabling_rulesмассивы. Ключи массива должны быть относительным путем к файлу каждого плагина в папке плагинов. Чаще всего это имя папки и имя файла плагина. Вы напишете правила для включения или отключения плагина WordPress на определенных страницах в виде значений массива для каждого плагина. Правилами страницы могут быть относительные URL на вашем сайте или нечеткие шаблоны регулярных выражений. Подробнее об этом позже.

Вы заметите WP Object Cacheраспространение по всему коду. Кэширование необходимо, потому что другие скрипты могут запрашивать список активных плагинов в любое время, несколько раз. И они делают. Не было бы смысла обрабатывать этот список десятки раз. Поэтому, когда Plugin Control манипулирует списком активных плагинов, он кэширует результаты. Это соответствует тому, как WordPress кэширует исходный список (который является опцией из базы данных с использованием ловушки).option_{$option}

Соответствие текущего URL правилам

Продолжая суть этого плагина, здесь происходит вся магия. Эта функция универсальна в том смысле, что ее не волнует включение или отключение. Он просто сопоставляет текущую страницу с вашими правилами и возвращает соответствующие плагины. Во-первых, он пытается сделать точное совпадение на текущем пути. Затем он прибегает к сопоставлению регулярных выражений, чтобы найти частичные совпадения. Вы можете заблокировать это поведение, используя привязки регулярных выражений, например, $чтобы отметить конец URL. В коде передача пустого массива в полезен для получения текущего пути в WordPress.add_query_arg()

Пометка затронутых плагинов в списке

Любопытные уже заметили, что я использую крюк. Это необязательно, и вы увидите его результат только при манипулировании плагинами в панели администратора или на панели инструментов. Обычно безопасно отключить плагин WordPress, который является ресурсоемким в некоторых частях администрировании сайта. Когда я захожу до плагинов с принудительным отключением или с принудительным включением даже в списке плагинов, я предпочитаю увидеть подсказку о них. Индикация отображается в виде красного сообщения вместо кнопки активации или деактивации. В любом случае они не будут работать, поэтому я заменяю их сообщением из Plugin Control.plugin_action_links_{$…}

Обратите внимание, что если вы внесете изменения в список плагинов вручную, включенное или отключенное состояние ваших управляемых плагинов будет запечатлено системой сразу после сохранения. Даже если вы переключаете незатронутые плагины. Это означает, что вы не можете слишком долго сохранять «изначально включенные» или «изначально отключенные» состояния. К счастью, Plugin Control не заботится об исходном состоянии ваших плагинов, поскольку он все еще может включать или отключать плагины WordPress.

Помехи от сторонних плагинов

Следующее совершенно необязательно. Даже на небольшой экспериментальной установке я столкнулся с плагином, который не использует лучшие практики и вызывает конфликты. По какой-то странной причине этот плагин (который не должен называться) сохранил список активных плагинов во внешнем интерфейсе. Это автоматически сохранило список управляемых плагинов, который задумал Plugin Control. Следующая часть кода обнаруживает несущественные изменения, такие как изменение порядка в списке активных плагинов, и предотвращает их сохранение с помощью фильтра. Это не влияет на ручное переключение плагинов на экране плагинов.pre_update_option_{$option_name}

Скачать плагин Control Must Use Plugin

Даже если вы решили пропустить большую часть этой статьи, вам все равно нужно внести изменения в правила. Для управления плагином необходимо знать, чтобы включить или отключить плагин WordPress. Ваши плагины и ваши страницы будут отличаться, это означает, что это не будет работать из коробки. Это мощный инструмент, и поскольку вы читаете эту статью, необходимость использовать что-то подобное уже возникла. Тем не менее, это зависит от вас, как вы используете это. Вы можете проверить производительность ваших результатов. Для меня часто достаточно знать, что ненужные плагины находятся в состоянии покоя. Это дает мне душевное спокойствие и освобождает некоторые потраченные впустую циклы процессора. 

Почему я широко использую это даже на страницах администратора? Потому что независимо от того, сколько плагинов кэширования и CDN я добавляю на сайт, они приносят пользу только тем посетителям, которые не вошли в систему. Для меня управление сайтом все еще может быть обходом. Этот плагин тоже поможет вам, но вы должны научится его правилам!

Обновление! : добавлена pluginsгруппа к вызовам функции кэширования, это помогает при использовании плагина W3TC.

Источник записи: https://letswp.io

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее