WordPressをカスタマイズするようになると、テーマ内のファイルにアクセスすることも多くなるはずです。
どの時どのタグを使えばいいんだっけ?
長いし、似てるし、ややこしくて、ホントに覚えきれない!
そう思っているのはボクだけではないはずです。
以前、「WordPressのテンプレートタグが覚えられないのでまとめてみた」でよく使うテンプレート側のタグをまとめたことがありましたが、今回は、パスとURI・URLに絞って、まとめてみました。
パスとURLとURIの違い
この辺の違いを、区別しておかないと、ややこしくなってしまうので、個人的な解釈を含みますが、簡単に説明します。
「パス」とは、ファイルやフォルダのある場所を示すものです。
その中でも、「http://」や「https://」などで始まるパス全般を「URI」といいます。
「URI」の中でドメインといいますか、トップページにあたる部分を「URL」といいます。
パスの中にURIがあって、URIの中にURLがあり、URLはURIの一部で、さらにURIはパスの一部だということです。
結局、よくわからない人もいるかもしれませんが、「http://」や「https://」で始まるものを「URI」、それ以外を「パス」とここではさせていただきます。
- パス… 「C:¥MAMP¥htdocs¥○○○¥wp-content¥themes¥○○○」 みたいなやつ。
- URI…「http://」や「https://」で始まるやつ。
テーマへのパスを取得する
「include()」や「require()」などを使いたい場合ですね。
- get_theme_file_path()
- get_template_directory()
- get_stylesheet_directory()
子テーマの場合
親テーマと同名のファイルがあった場合、子テーマのファイルが優先されます。
- get_theme_file_path()
- get_stylesheet_directory()
子テーマから親テーマのパスを取得する
親テーマのファイルが優先されます。
- get_template_directory()
- get_parent_theme_file_path()
テーマへのURIを取得する
画像表示やリンクなどで使いたい場合ですね。
- get_theme_file_uri()
- get_template_directory_uri()
- get_stylesheet_directory_uri()
子テーマの場合
親テーマと同名のファイルがあった場合、子テーマのファイルが優先されます。
- get_theme_file_uri()
- get_stylesheet_directory_uri()
子テーマから親テーマのURIを取得する
親テーマのファイルが優先されます。
- get_template_directory_uri()
- get_parent_theme_file_rui()
まとめ
厳密には違いがあるのでしょうが、ほぼ同じ動作をするものがいくつもあります。
結局、どれを使うのがベストなのかはわかりません。
なぜか、ボクは、パスの場合は「get_theme_file_path()」。
uriの場合は「get_template_directory_uri()」を使ってました。
これからは、「get_theme_file_path()」 「get_theme_file_uri()」を使おうかなと思っています。
「_path」「_uri」のどちらかを付けるという規則性もわかりやすい。
「parent」を付ければ親テーマ、それ以外は子テーマ(現在のテーマ)という動作も、わかりやすい。
何といっても、文字数が一番短い上に、出てくる単語もスペルもわかりやすい!
スペル何だったかな?なんて悩むこともなくなりそうだな。