phpの最後の終了タグ ?>は付けてはいけない

functions.phpの最後の終了タグ ?>は付けてはいけない

ワードプレスに限らず、PHPファイル末尾のPHP終了タグ?>は付けてはいけません。
ワードプレスの場合は、付けないことを推奨となっていて、必ずではないものの付けない方が安全です。

終了タグ ?> を書く場合と、書かない場合

終了タグ ?> を書くのはこんな時

テンプレートなどの途中にPHPを書く場合。

<h1><?php the_title(); ?></h1>

終了タグ ?> を書かないはこんな時

ファイルの最後がPHPの場合。
functions.phpがまさにこのパターンですね!

<?php

?>

なぜなのか?

OKパターンとNGパターン

まずはOKパターン

<?php

?>
[EOF]

これがNGパターン

<?php

?>

[EOF]

違いについて

OKパターンとNGパターンの違い分かりましたか?
そうです、最後のタグを閉じた後の改行の数です。

NGパターンのどうなるかというと、HTMLにおいて改行コードは半角スペースとして認識されます。
結果、変なスペースが入るだけではなく、header関数が認識されなくなりページが表示されない場合があります。

通常、ファイルの最後は改行で終わりますが、何かのミスで改行2回入れちゃったらアウトになります。
そんなトラブルを避けるためにも、終了タグをつけてはいけないと憶えておいた方が無難です。

コーディング規約を読もう!

ワードプレスには、各言語をワードプレスで使う場合のコーディング規約があります。

まずはこれらを読みましょう。
Web制作会社の方は、次に社内コーディング規約と照らし合わせましょう。

その上で、ワードプレスのコーディング規約より社内のコーディング規約を優先するのは良いと思います。
よく見かけるのは、両方読んでなかったり、最悪社内コーディング規約が無くワードプレスのコーディング規約も読んでないパターンです。

理想は、社内のコーディング規約とは別に、社内のWordPress用コーディング規約を作ることです。

私が通常働いている会社のコーディング規約もいずれ公開したいと思ってます。
ただ、常に進化しているため中々タイミングが難しい・・・。

たまにワードプレスを売りにしてるWeb専門の制作会社でコーディング規約の無い会社があるので、依頼する方は制作会社の見極めの際に質問してみてください。
わかる方なら、CSSプロパティの並び順の規則性などをみると判断しやすいですよ。