Как отключать Jetpack модули на уровне профи

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

Engine start stop button of a car

Мы используем Jetpack на нашем сайте WP Site Care, поскольку он является лучшим WordPress-плагином для социального шаринга среди всех решений, протестированных нами до недавнего времени. Он очень быстро работает, его можно легко стилизовать, он не замедляет загрузку записей и страниц.

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

Единственное, что, как мне показалось, отсутствовало в посте – это список модулей, которые в данный момент доступны в Jetpack, поэтому я решил немного «поломать» Jetpack и самостоятельно получить этот список. Чтобы следовать за этой записью, вам нужно будет, естественно, для начала скачать и установить Jetpack. Сделать это вы можете на экране добавления нового плагина в WordPress.

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

Идея моего метода заключается в том, чтобы блокировать загрузку нежелательных модулей Jetpack либо вами, либо другими администраторами вашего сайта. Следующий код не отключает Jetpack модули; вместо этого он просто скрывает их, чтобы их нельзя было использовать. Прежде чем добавлять этот фрагмент к своей теме или к своему функциональному плагину, вам необходимо будет вручную деактивировать каждый модуль на экране администрирования Jetpack.

disable-jetpack

Как только вы отключите модули, которые вы хотите скрыть, вам останется лишь добавить следующий код к вашему плагину или файлу functions.php темы, и у вас будет прекрасный фундамент для удаления любого Jetpack-модуля, который вы не хотите загружать на своем сайте.

<?php
add_filter( 'jetpack_get_available_modules', 'prefix_hide_jetpack_modules' );
/**
* Disable all non-whitelisted jetpack modules.
*
* As it's written, this will allow all of the currently available Jetpack
* modules to work display and be activated normally.
*
* If there's a module you'd like to disable, simply comment it out or remove it
* from the whitelist and it will no longer be available for activation.
*
* @author WP Site Care
* @link   http://www.wpsitecare.com/disable-jetpack-modules/
* @param  array $modules the existing list of Jetpack modules
* @return array $modules the amended list of Jetpack modules
*/
function prefix_hide_jetpack_modules( $modules ) {
    // A list of Jetpack modules which are allowed to activate.
    $whitelist = array(
        'after-the-deadline',
        'carousel',
        'comments',
        'contact-form',
        'custom-content-types',
        'custom-css',
        'enhanced-distribution',
        'gravatar-hovercards',
        'infinite-scroll',
        'json-api',
        'latex',
        'likes',
        'manage',
        'markdown',
        'minileven',
        'monitor',
        'notes',
        'omnisearch',
        'photon',
        'post-by-email',
        'protect',
        'publicize',
        'related-posts',
        'sharedaddy',
        'shortcodes',
        'shortlinks',
        'site-icon',
        'sso',
        'stats',
        'subscriptions',
        'tiled-gallery',
        'vaultpress',
        'verification-tools',
        'videopress',
        'widget-visibility',
        'widgets',
    );
    return array_intersect_key( $modules, array_flip( $whitelist ) );
}

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

Нужно также отметить, что этот код отключит любые новые модули, которые будут добавлены к Jetpack. Если они не будут присутствовать в белом списке, то в таком случае их нельзя будет активировать или деактивировать.

Управляйте Jetpack с помощью плагинов

Вы можете также установить следующий великолепный плагин от Марка Джекита. Он несколько устарел, однако он по-прежнему отлично работает. В основном этот плагин перемещает меню верхнего уровня ближе к нижней части сайдбара панели администратора. Сначала контент, а потом уже настройки!

Еще один плагин, связанный с Jetpack, который позволяет получить больше контроля над загрузкой Jetpack модулей – Rocketeer. Согласно автору плагина, Брэди Веркеру, Rocketeer позволяет вам управлять модулями Jetpack точно так же, как вы делаете это с плагинами. Базовые возможности плагина включают в себя сортировку и массовую активацию/деактивацию модулей Jetpack. Скачайте его и протестируйте!

Источник: http://www.wpsitecare.com

Сохранено из oddstyle.ru

Добавить комментарий

%d такие блоггеры, как: