Мы используем Jetpack на нашем сайте WP Site Care, поскольку он является лучшим WordPress-плагином для социального шаринга среди всех решений, протестированных нами до недавнего времени. Он очень быстро работает, его можно легко стилизовать, он не замедляет загрузку записей и страниц.
Поскольку мне требовалось использовать лишь некоторую функциональность Jetpack, я решил найти способ реализовать это без загрузки всех модулей плагина. На прошлой неделе я наткнулся на прекрасный пост от Джереми Эрве, в котором он рассказал, как загружать только некоторые модели Jetpack. Он проделал впечатляющую работу, объяснив то, как они создали кучу фильтров, чтобы позволить разработчикам взаимодействовать с Jetpack. Он даже привел пример кода для избавления от ненужных модулей, которые вы не планируете активировать.
Единственное, что, как мне показалось, отсутствовало в посте – это список модулей, которые в данный момент доступны в Jetpack, поэтому я решил немного «поломать» Jetpack и самостоятельно получить этот список. Чтобы следовать за этой записью, вам нужно будет, естественно, для начала скачать и установить Jetpack. Сделать это вы можете на экране добавления нового плагина в WordPress.
Как только я получил список модулей, я начал использовать код Джереми для блокировки тех модулей, которые я не хотел загружать. Также, что является типичным для меня, я решил подумать над альтернативным способом отключения нежелательных модулей Jetpack, который бы прекрасно работал для большинства людей.
Идея моего метода заключается в том, чтобы блокировать загрузку нежелательных модулей Jetpack либо вами, либо другими администраторами вашего сайта. Следующий код не отключает Jetpack модули; вместо этого он просто скрывает их, чтобы их нельзя было использовать. Прежде чем добавлять этот фрагмент к своей теме или к своему функциональному плагину, вам необходимо будет вручную деактивировать каждый модуль на экране администрирования 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