Как полностью отключить WP Customizer

Click here to view original web page at wp-kama.ru

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

Полное отключение WordPress Customizer может понадобиться по следующим причинам:

  1. Производительность: Отключение Customizer может ускорить загрузку сайта, особенно если Customizer загружает много ресурсов или вызывает дополнительные запросы к серверу.

  2. Безопасность: В некоторых случаях, особенно если сайт работает в условиях повышенной безопасности, администраторы могут отключить Customizer, чтобы предотвратить потенциальные уязвимости или ограничить доступ к настройкам темы.

  3. Стабильность: Если Customizer вызывает конфликты с другими плагинами или темами, его отключение может помочь избежать ошибок и проблем с совместимостью.

  4. Упрощение интерфейса: В некоторых случаях администраторы хотят упростить интерфейс управления для пользователей, чтобы они не могли случайно изменить важные настройки сайта.

  5. Особые требования проекта: Некоторые проекты могут требовать полного контроля над настройками через код, без использования Customizer. Это может быть важно для разработчиков, создающих кастомные решения для клиентов.

Для отключения Customizer в WordPress можно использовать следующий код в файле functions.php вашей темы или в специальном плагине:

Где находится Кастомайзер в админ-панели.

Полное отключение Кастомазера в WordPress - удаление кастомайзера

Для удаление wordpress кастомайзера можно использовать небольшой плагин Disable Customizer.

Ниже адаптированный код этого плагина, чтобы не устанавливать плагин, а вшить его в проект через использование Обязательных плагинов.

Создайте файл /wp-contents/mu-plugins/wp-customizer-remove.php. И добавьте в него следующий код:

<?php
/*
 * Plugin name: Disable Customizer
 * Description: Completely turn off customizer on your site. NOTE: This is a copy of the plugin code: https://wordpress.org/plugins/customizer-disabler/
 * Version: 2.2.7
 * Author: Johannes Siipola
 * Author URI: https://siipo.la
 */

Disable_WP_Customizer::get_instance()->init();

class Disable_WP_Customizer {

	public static function get_instance(): self {
		static $instance;
		$instance || $instance = new static();

		return $instance;
	}

	private function __construct() {
	}

	public function init(): void {
		add_action( 'init', [ $this, 'init_hook' ], 10 );
		add_action( 'admin_init', [ $this, 'admin_init_hook' ], 10 );
	}

	public function init_hook(): void {
		add_filter( 'map_meta_cap', [ $this, 'remove_customize_capability' ], 10, 4 );
	}

	public function admin_init_hook(): void {
		remove_action( 'plugins_loaded', '_wp_customize_include', 10 );
		remove_action( 'admin_enqueue_scripts', '_wp_customize_loader_settings', 11 );

		add_action( 'load-customize.php', [ $this, 'override_load_customizer_action', ] );
	}

	public function remove_customize_capability( $caps = [], $cap = '', $user_id = 0, $args = [] ) {
		if( $cap === 'customize' ){
			return [ 'nope' ];
		}

		return $caps;
	}

	public function override_load_customizer_action() {
		/** @noinspection ForgottenDebugOutputInspection */
		wp_die( 'The Customizer is currently disabled.' );
	}
}

Этот код:

  • Удаляет инициализацию кода Кастомайзера.
  • Обнуляет право пользователя (customize) на использование кастомайзера.
  • Удаляет ссылки на Customizer из меню администратора и панели инструментов.
  • Удаляет кастомный CSS, добавляемый через Customizer.