В связи с выходом редактора Гутенберг, который получил название блочного редактора в WordPress 5.0, часто возникает вопрос — как программно определить, какой редактор используется в настоящее время для редактирования поста в консоли сайта?

Вариантов тут можеть быть несколько:

  • WordPress 4.9, плагин Гутенберг не активен
  • WordPress 4.9, плагин Гутенберг активен
  • WordPress 5.0, включен блочный редактор по умолчанию
  • WordPress 5.0, активен плагин Classic Editor
  • WordPress 5.0, активен плагин Classic Editor, но в консоли в «Настройки > Написание» выбрана опция «Использовать по умолчанию редактор блоков…»

Все указанные выше варианты могут обработаны следующим кодом:

/**
 * Check if Block Editor is active.
 * Must only be used after plugins_loaded action is fired.
 *
 * @return bool
 */
function is_active() {
	// Gutenberg plugin is installed and activated.
	$gutenberg = ! ( false === has_filter( 'replace_editor', 'gutenberg_init' ) );

	// Block editor since 5.0.
	$block_editor = version_compare( $GLOBALS['wp_version'], '5.0-beta', '>' );

	if ( ! $gutenberg && ! $block_editor ) {
		return false;
	}

	if ( is_classic_editor_plugin_active() ) {
		$editor_option       = get_option( 'classic-editor-replace' );
		$block_editor_active = array( 'no-replace', 'block' );

		return in_array( $editor_option, $block_editor_active, true );
	}

	return true;
}

/**
 * Check if Classic Editor plugin is active.
 *
 * @return bool
 */
function is_classic_editor_plugin_active() {
	if ( ! function_exists( 'is_plugin_active' ) ) {
		include_once ABSPATH . 'wp-admin/includes/plugin.php';
	}

	if ( is_plugin_active( 'classic-editor/classic-editor.php' ) ) {
		return true;
	}

	return false;
}

Код возвращает true, если блочный редактор включен тем или иным способом, или false — в случае классического редактора. Вызывать эту функцию надо не ранее, чем сработает событие plugins_loaded.

P.S. В связи с выходом версии 1.2 плагина Classic Editor, код пришлось обновить, поскольку опция classic-editor-replace теперь принимает значения не replace и no-replace, а classic и block.


Вышла новая версия 2.0.0 плагина WOOF by Category. Плагин теперь полностью совместим с WPML.

WOOF по Категориям — это расширение плагина WooCommerce Product Filter (WOOF), которое позволяет установить различные фильтры WOOF в различных категориях. Плагин имеет опции в консоли, чтобы установить соответствие между любой категорией товаров WooCommerce и любым набором фильтров WOOF. Только выбранные фильтры будут отображены на страницах выбранной категорий и ее подкатегорий.

В новой версии плагина настройки сохраняются для каждого языка WPML по отдельности. Это позволяет иметь разный набор пар пар «категория->фильтры» в разных языках, и работать с категориями, переведёнными с помощью WooCommerce Multilingual (этот плагин входит в состав WPML).


xDebug — отличный отладчик, но он существенно замедляет сайты. Во время разработки, желательно включать xDebug только тогда, когда он действительно нужен. Давайте посмотрим, как включить, отключить xDebug и установить режимы профилирования в среде разработки Laragon. Также увидим, как добавить кнопки этих действий на панель инструментов phpStorm.

Так будет выглядеть конечный результат (4 крайние кнопки справа).

Вначале давайте создадим командный файл для переключения xDebug. Предполагается, что мы работаем под Wondows 10 с установленной оболочкой Linux Bash. В некой папке, которая находится в PATH Windows, создадим два файла: xdebug.bat и xdebug.sh.