Попытка обновить экземпляр Wordpress до PHP 7.2, и у меня есть родительская тема, которая использует устаревший $this
в его functions.php.
function paperback_filter_page_templates( $page_templates, $this, $post ) {
if( ! class_exists( 'Easy_Digital_Downloads' ) ) :
unset( $page_templates['inc/edd/home-downloads.php'] );
endif;
return $page_templates;
}
add_filter( 'theme_page_templates', 'paperback_filter_page_templates', 10, 3 );
Мне не удалось ...
1: Переопределение функции в функциях дочерней темы. Php:
(удаление $this
из параметра и с более высоким приоритетом add_filter
)
function paperback_filter_page_templates( $page_templates, $post ) {
if( ! class_exists( 'Easy_Digital_Downloads' ) ) :
unset( $page_templates['inc/edd/home-downloads.php'] );
endif;
return $page_templates;
}
add_filter( 'theme_page_templates', 'paperback_filter_page_templates', 15, 2 );
2: Использование функции, которая удаляет фильтр в функциях дочерней темы. Php:
function rm_paperback_filter_page_templates() {
remove_filter( 'theme_page_templates', 'paperback_filter_page_templates', 10);
}
add_action( 'wp_loaded', 'rm_paperback_filter_page_templates', 15 );
(попытались подключить это действие к init
, setup_theme
,after_setup_theme
...)
Я могу удалить функцию-нарушитель из родительской темы, чтобы избежать катастрофического обновления php 7.2 на данный момент (авторы родительской темы / компания были приобретены, поэтому обновление неи я знаю, что теперь нужно искать родительские темы с подключаемыми функциями ... но было бы неплохо узнать, возможно ли реальное исправление!