こんにちは! ライターのナナミです。
WordPressのURL、いろんな種類がありますよね。
記事のURL、固定ページのURL、トップページのURLなどなど…
そんなURLをいちいち手作業で貼っていくのは手間ですよね。
しかもちょっとURLの設定を変えたりした時、また貼り直しになるとさらに手間がかかってしまいます。
そんな時は、URLを取得して表示するコードを書いちゃいましょう!
今回はその方法を詳しく解説していきます。
この記事は下記の流れで進めていきましょう。
【基礎】テンプレートタグとは?
【基礎】URLを取得するテンプレートタグ
【発展】「取得」と「表示」の違い
【発展】固定ページや記事でURLを表示する
URLの取得を理解して、リンク貼りを楽チンにしちゃいましょう!
URL取得の方法とは?
WordPressでは、コードによってURLを取得することができます。
取得するコードは、WordPress独自の関数となっています。
PHPで作られており、使い方もPHPに組み込むような形です。
PHPのライブラリのような感じですね
テンプレートタグとは?
WordPress関数の中でも、テンプレート内で使うものをテンプレートタグと言います。
今回解説していくURLの取得も、テンプレートタグを使用します。
テンプレート内、つまりテーマフォルダ内のPHPファイルに記述するタグです。
これらのファイルに記述することにより、データベース内からURLを取得して表示することができるのです。
テンプレートタグについては、リファレンスも併せて確認してみるとより理解することができます。
WordPress Codex 日本語版 テンプレートタグ
URLを取得するテンプレートタグ
では、各ページのURLを取得することができるテンプレートタグを紹介していきましょう!
ささっとコピペで使える形式で紹介していくので、詳細は各リファレンスで確認してみてくださいね。
トップページ
トップページのURLを取得する場合、home_url()というテンプレートタグを使用します。
PHP
<?php echo home_url( '/' ); ?>
出力例
home_urlは名前の通り、ホームのURLを取得するものです。
これをechoで呼び出すことにより、ソース内に表示することができます。
カッコ内のスラッシュは、URLの最後にスラッシュを入れるために記述しています。
リファレンスはこちら
WordPress Codex 日本語版 テンプレートタグ/home url
固定ページ
固定ページの場合、get_page_link()を使います。
PHP
<?php echo get_page_link( $id ); ?>
出力例
$idの部分には、固定ページのIDを記述します。
これでページのURLを変更しても、IDが変わらなければリンクを貼り直す必要がありません。
リファレンスはこちら
WordPress Codex 日本語版 関数リファレンス/get page link
記事ページ
記事ページのURL取得は、get_permalink()を使います。
PHP
<?php echo get_permalink( $id ); ?>
出力例
固定ページと同じく、記事のIDで指定をします。
記事を繰り返し表示するループという記述を使っている場合は、IDの部分は空白にしておきましょう。
ループ時に勝手にIDを入れて処理をしてくれます。
ループって何?という方は、下記の記事を確認してみてください。
https://wp-exp.com/blog/loop/
get_permalink()のリファレンスはこちら
WordPress Codex 日本語版 テンプレートタグ/get permalink
カテゴリーアーカイブページ
カテゴリーごとに一覧を表示したいという場面はよくありますよね。
そんなカテゴリーアーカイブページへのリンクは、get_category_link()を使います。
PHP
<?php echo get_category_link( $id ); ?>
出力例
カテゴリーにも一つ一つにIDが付与されています。
$idの部分には、そのIDを入れればOKです。
リファレンスはこちら
WordPress Codex 日本語版 関数リファレンス/get category link
WordPressテンプレートファイルの位置
画像やファイルを表示する時、相対パスよりも絶対パスの方がいい!という場面があったりしますよね。
そんな時は、get_template_directory_uri()を使えば、テーマのファイルまでのパスを取得してくれます。
PHP
<?php echo get_template_directory_uri(); ?>
出力例
この後ろに画像などURLをつければ、もしアドレスを変更したりしても書き換える必要がありません。
リファレンスはこちら
WordPress Codex 日本語版 関数リファレンス/get template directory uri
その他の基本テンプレートタグ一覧
ここまで紹介してきたものは、よく使う基本的なテンプレートタグです。
これ以外にも、いろんなURLを取得するテンプレートタグが存在しています。
全て紹介するととても長くなってしまうので、一部をピックアップして紹介していきますね。
テンプレートタグ | 説明 | 出力例 | リファレンス |
---|---|---|---|
get_bloginfo( $show ) | $showの部分に色々と指定を入れることで、ブログの情報を取得することができます。 | $showの値による | WordPress Codex 日本語版 テンプレートタグ/get bloginfo |
get_day_link( $year, $month, $day ) | 日別アーカイブページのリンクを取得します。 | http://test-wp.test/?m=20150313 | WordPress Codex 日本語版 テンプレートタグ/get day link |
get_tag_link( $id ) | タグごとの一覧ページ、タグアーカイブページヘのリンクを取得します。$idの部分には、タグのIDが入ります。 | http://test-wp.test/?tag=wordpress | WordPress Codex 日本語版 関数リファレンス/get tag link |
get_term_link( $id ) | カスタム分類アーカイブページヘのリンクを取得します。 カスタム分類とは何か知りたい方はこちら。 WordPress Codex 日本語版 カスタム分類 | http://test-wp.test/custom-taxonomy | WordPress Codex 日本語版 関数リファレンス/get term link |
もっと他の種類が知りたい方は、リファレンスで確認してみてください。
WordPress Codex 日本語版 テンプレートタグ
「取得」と「表示」の違い
さて、ここでちょっと注意点です。
WordPressのテンプレートタグには、取得をするものと表示をするものがあります。
getで始まるテンプレートタグです。
その値を取ってくるところまでやってくれますが、表示はしてくれません。
なので、表示する場合はechoをつける必要があります。
【表示】
theで始まるテンプレートタグです。
値を取ってきて表示するところまでやってくれます。
この場合はechoをつける必要はありません。
あれ?表示されない?
と思ったら、そのテンプレートタグが「取得」なのか「表示」なのかをチェックしてみましょう。
今回の記事はわかりやすいように「取得」するテンプレートタグのみ紹介しています。
「表示」のテンプレートタグは、リファレンスなどで確認してみてくださいね。
WordPress Codex 日本語版 テンプレートタグ
固定ページや記事でURLを表示する
テンプレートタグは、PHPファイル内でしか使うことができません。
つまり、固定ページや記事では上記のテンプレートタグは使えないのです。
でも固定ページにリンク貼りたい…
という場合は、ショートコードを使って表示するようにしましょう。
ショートコードとは、PHPやWordPress関数を固定ページなどでも使えるようにする機能です。
詳しい解説は下記の記事をどうぞ!
まとめ
いかがでしたか?
URLの取得はページによって違うので、なかなか覚えるのは大変だと思います。
わからなくなったら、またこの記事でチェックしてみてくださいね!