外部入力のないwebサイトをphpでつくるときには、xss対策は必要ないのでしょうか?

ご質問に対する答えは、YESでありNOです。
外部入力が、HTTPリクエスト、メール、ファイル、DB等を含めてまったく存在しないのであれば、XSS攻撃の経路がないので、XSS攻撃はできません。そのため、XSS攻撃の対策も不要ということになります。
しかし、XSS対策として通常実施するHTMLエスケープ、属性値をダブルクォートで囲む、HTTPレスポンスヘッダに文字エンコーディングを指定する…などが不要になるわけではありません。これらは「攻撃を防ぐ」ために実施するわけではありません。これらは、開発者が意図した通りの表示にするために必要な処理だからです。
このため、攻撃の経路があろうが、なかろうが、XSS対策と同等のことは元々Webシステムではやらなければならないこと、ということです。ご質問の答えがNOでもあるというのはそういうことです。