我正在从 Wordpress 主题创建一个子主题。父主题严重依赖一个自定义类,然后在 functions.php 文件中实例化,如下所示:
<?php
require_once (TEMPLATEPATH . '/advanced/specialclass.php');
$specialclass = new SpecialClass();
if(!function_exists('lets_go')) {
function lets_go(){
global $specialclass;
$specialclass->start();
}
}
lets_go();
?>
我需要在我的子主题中覆盖该类中的一个函数,我试图通过为子主题创建一个 functions.php 文件来做到这一点。我尝试了以下几种变体:
<?php
require_once (TEMPLATEPATH . '/advanced/specialclass.php');
require_once (STYLESHEETPATH . '/advanced/specialclassextended.php');
global $specialclass;
$specialclass = new SpecialClassExtended();
function lets_go(){
global $specialclass;
$specialclass->start();
}
?>
也许我的问题与对 PHP 全局变量的理解不够好有关,但不管是什么,我都被卡住了。父主题文件中有很多对 $specialclass 的引用,因此通过在子主题中创建新模板文件来替换它们是不切实际的。我真的需要用我的扩展类的实例替换那个全局。这可能吗?我究竟做错了什么?在我到目前为止的所有搜索中,这是我发现的最密切相关的信息,但不幸的是它没有回答我的具体问题: