オブジェクト指向のワードプレスプロジェクトで使用しているレガシーコードのいくつかをリファクタリングする必要があります。コードの重複が多い領域の1つは、setTitle関数内でページのタイトルを設定するときです(下の図を参照)。PHPのネストされた関数と同等のもの
入れ子関数はPHPでは動作しないようです。しかし、それがうまくいくと仮定すると、以下のコードは、私がしようとしていることを達成するはずです。
setTitle関数では、文字列を取り込んで何らかの形でコードを実行し、渡された文字列でadd_filter
を正常に呼び出すだけで、タイトルが正しく設定されます。これを達成する最良の方法は何でしょうか?
MyControllerClass.php
public function setTitle($title) {
function t($t) {
$t['title'] = $title; return $t;
}
add_filter('document_title_parts', 't');
return $this;
}
その後、後で別のクラスで..
$controller->setTitle('My Homepage')->renderHomePage();
あり、PHPでのネストされた関数のようなものがのsetTitle()が呼び出された場合にのみ定義される関数t()は単に何を持っている....ではありませんが、それ以外の場合は、と絶対に何も共有しませんsetTitle()、可変スコープ、無し –