$templates = array();
if ( '' !== $name )
$templates[] = "header-{$name}.php"
$templates[] = 'header.php' ;
このプログラムは $name が空でないかどうかを判断し、空でない場合は $templates[] に "header-{$name}.php" を割り当てます
しかしその後 $templates[] = 'header.php' ; そうすると、テンプレートは最終的に header.php になります。
前回の判決の役割は何ですか? ディスカッション(ソリューション)に繰り返して、専門家に尋ねてください、
$テンプレート[]; //アレイに値を追加するのではなく、アレイに値を追加することです。値を割り当てる;
つまり、 $name != '', $templates の場合、配列には 2 つの値があります