WordPress子主题无法阻止父主题错误

时间:2018-12-04 23:12:18

标签: php wordpress wordpress-theming php-7

尝试将Wordpress实例更新为PHP 7.2,我有一个父主题,该父主题在其functions.php中使用了已弃用的$this

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:覆盖子主题的functions.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:使用删除子主题的function.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 );

(已尝试将此操作关联到initsetup_themeafter_setup_theme ...)

我可以从父主题中删除有问题的功能,以避免目前发生灾难性的php 7.2升级(已获取父主题作者/公司,因此不会进行更新),而且我知道寻找具有可插入功能的父主题从现在开始...但是很高兴知道是否可以进行真正的修复!

0 个答案:

没有答案