Дочерняя тема Wordpress не может предотвратить ошибку родительской темы - PullRequest
0 голосов
/ 05 декабря 2018

Попытка обновить экземпляр 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 на данный момент (авторы родительской темы / компания были приобретены, поэтому обновление неи я знаю, что теперь нужно искать родительские темы с подключаемыми функциями ... но было бы неплохо узнать, возможно ли реальное исправление!

...