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への参照が多数あるため、子テーマに新しいテンプレートファイルを作成してそれらすべてを置き換えることは実用的ではありません。そのグローバルを拡張クラスのインスタンスに置き換える必要があります。これは可能ですか?私は何が間違っているのですか?これまでのすべての検索で、これは私が見つけた最も密接に関連する情報ですが、残念ながら、それは私の特定の質問に答えていません: