Не работает шорткод плагина Contact Form 7 в виджетах

В декабре 2018 года произошли два события:

  1. вышла версия WordPress 5.0.1
  2. автор плагина Contact Form 7 представил версию 5.1.1

После этого на сайтах шорткод контактной формы в виджетах перестал работать. На сайте wordpress.org в разделе поддержки плагина Contact Form 7 в то время было много обращений, связанных с новой версией, в том числе была указана и эта проблема. Решение нашлось быстро:

add_filter( 'widget_text', 'do_shortcode' );

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

Мы на тот момент точно знали, что проблема связана именно с плагином контактной формы, а вот на форуме ещё не определились, допускали вину WordPress. Дабы наставить на путь истинный, написали им, что WP 5.0.x + CF 5.0.5 = work, а WP 5.0.x + CF 5.1.1 = it does not work. Человек, подсказавший решение проблемы с неработающим шорткодом контактной формы в виджетах, быстро сравнил две версии плагина и обнаружил отсутствие части кода в новой версии, а именно:

add_filter( 'widget_text', 'wpcf7_widget_text_filter', 9 );
function wpcf7_widget_text_filter( $content ) {
	$pattern = '/\[[\r\n\t ]*contact-form(-7)?[\r\n\t ].*?\]/';
	if ( ! preg_match( $pattern, $content ) ) {
		return $content;
	}
	$content = do_shortcode( $content );
	return $content;
}

в файле /includes/controller.php

Мы очень надеялись, что автор плагина внесёт код обратно, но, к сожалению, пока этого не сделано. На наше письмо он не ответил, видимо достали его, так как к новой версии у пользователей было много претензий из-за капчи-3. На момент написания статьи актуальная версия плагина контактной формы Contact Form 7 5.1.1 — шорткод в виджетах не работает.

https://wordpress.org/support/topic/shortcode-broken-in-widget-after-update/#post-11007409