WordPressの各ページURLを取得・表示してリンクを貼る方法

こんにちは! ライターのナナミです。

WordPressのURL、いろんな種類がありますよね。
記事のURL、固定ページのURL、トップページのURLなどなど…

そんなURLをいちいち手作業で貼っていくのは手間ですよね。
しかもちょっとURLの設定を変えたりした時、また貼り直しになるとさらに手間がかかってしまいます

そんな時は、URLを取得して表示するコードを書いちゃいましょう!
今回はその方法を詳しく解説していきます。

この記事は下記の流れで進めていきましょう。

【基礎】URLの取得方法は?
【基礎】テンプレートタグとは?
【基礎】URLを取得するテンプレートタグ
【発展】「取得」と「表示」の違い
【発展】固定ページや記事でURLを表示する

URLの取得を理解して、リンク貼りを楽チンにしちゃいましょう!

目次

URL取得の方法とは?

WordPressでは、コードによってURLを取得することができます。

wp_url1

取得するコードは、WordPress独自の関数となっています。
PHPで作られており、使い方もPHPに組み込むような形です。

PHPのライブラリのような感じですね

テンプレートタグとは?

WordPress関数の中でも、テンプレート内で使うものをテンプレートタグと言います。
今回解説していくURLの取得も、テンプレートタグを使用します。

テンプレート内、つまりテーマフォルダ内のPHPファイルに記述するタグです。

wp_url2

これらのファイルに記述することにより、データベース内からURLを取得して表示することができるのです。

テンプレートタグについては、リファレンスも併せて確認してみるとより理解することができます。
WordPress Codex 日本語版 テンプレートタグ

URLを取得するテンプレートタグ

では、各ページのURLを取得することができるテンプレートタグを紹介していきましょう!

ささっとコピペで使える形式で紹介していくので、詳細は各リファレンスで確認してみてくださいね。

トップページ

トップページのURLを取得する場合、home_url()というテンプレートタグを使用します。

PHP

<?php
echo home_url( '/' );
?>

出力例

http://test-wp.test/

home_urlは名前の通り、ホームのURLを取得するものです。
これをechoで呼び出すことにより、ソース内に表示することができます。

カッコ内のスラッシュは、URLの最後にスラッシュを入れるために記述しています。

リファレンスはこちら
WordPress Codex 日本語版 テンプレートタグ/home url

固定ページ

固定ページの場合、get_page_link()を使います。

PHP

<?php
echo get_page_link( $id );
?>

出力例

http://test-wp.test/固定ページのURL

$idの部分には、固定ページのIDを記述します。
これでページのURLを変更しても、IDが変わらなければリンクを貼り直す必要がありません。

リファレンスはこちら
WordPress Codex 日本語版 関数リファレンス/get page link

記事ページ

記事ページのURL取得は、get_permalink()を使います。

PHP

<?php
echo get_permalink( $id );
?>

出力例

http://test-wp.test/記事URL

固定ページと同じく、記事の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 );
?>

出力例

http://test-wp.test/category/カテゴリ名

カテゴリーにも一つ一つにIDが付与されています。
$idの部分には、そのIDを入れればOKです。

リファレンスはこちら
WordPress Codex 日本語版 関数リファレンス/get category link

WordPressテンプレートファイルの位置

画像やファイルを表示する時、相対パスよりも絶対パスの方がいい!という場面があったりしますよね。

そんな時は、get_template_directory_uri()を使えば、テーマのファイルまでのパスを取得してくれます

PHP

<?php
echo get_template_directory_uri();
?>

出力例

http://test-wp.test/wp-content/themes/twentyseventeen

この後ろに画像など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=20150313WordPress Codex 日本語版 テンプレートタグ/get day link
get_tag_link( $id )タグごとの一覧ページ、タグアーカイブページヘのリンクを取得します。$idの部分には、タグのIDが入ります。http://test-wp.test/?tag=wordpressWordPress Codex 日本語版 関数リファレンス/get tag link
get_term_link( $id )カスタム分類アーカイブページヘのリンクを取得します。
カスタム分類とは何か知りたい方はこちら。
WordPress Codex 日本語版 カスタム分類
http://test-wp.test/custom-taxonomyWordPress Codex 日本語版 関数リファレンス/get term link

もっと他の種類が知りたい方は、リファレンスで確認してみてください。
WordPress Codex 日本語版 テンプレートタグ

「取得」と「表示」の違い

さて、ここでちょっと注意点です。
WordPressのテンプレートタグには、取得をするものと表示をするものがあります。

【取得】
getで始まるテンプレートタグです。
その値を取ってくるところまでやってくれますが、表示はしてくれません。
なので、表示する場合はechoをつける必要があります。

【表示】
theで始まるテンプレートタグです。
値を取ってきて表示するところまでやってくれます。
この場合はechoをつける必要はありません。

あれ?表示されない?
と思ったら、そのテンプレートタグが「取得」なのか「表示」なのかをチェックしてみましょう。

今回の記事はわかりやすいように「取得」するテンプレートタグのみ紹介しています。
「表示」のテンプレートタグは、リファレンスなどで確認してみてくださいね。
WordPress Codex 日本語版 テンプレートタグ

固定ページや記事でURLを表示する

テンプレートタグは、PHPファイル内でしか使うことができません
つまり、固定ページや記事では上記のテンプレートタグは使えないのです。

でも固定ページにリンク貼りたい…

という場合は、ショートコードを使って表示するようにしましょう。
ショートコードとは、PHPやWordPress関数を固定ページなどでも使えるようにする機能です。

詳しい解説は下記の記事をどうぞ!

まとめ

いかがでしたか?

URLの取得はページによって違うので、なかなか覚えるのは大変だと思います。
わからなくなったら、またこの記事でチェックしてみてくださいね!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次