【WordPress】PHPファイル内でのURL取得方法【関数】

WordPressのURLには記事のURL、固定ページのURL、トップページのURLなどいろいろなものがある。

いちいち手作業で貼っていくのは手間だし、また貼り直しになるとさらに手間がかかってしまう。

そこで活躍するのがURLを取得して表示するコード。

この記事の目次

1 URL取得の方法とは?
2 テンプレートタグとは?
3 URLを取得するテンプレートタグ
4 「取得」と「表示」の違い
5 固定ページや記事でURLを表示する
6 まとめ

 

URL取得の方法

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

取得するコードは、WordPress独自の関数となっているので、コピペして埋め込めばOK。

 

テンプレートタグとは?

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

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

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

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

 

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

各ページのURLを取得することができるテンプレートタグ

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

PHP

<?php
echo home_url( ‘/’ );
?>
出力例
http://test-wp.test/

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

カッコ内のスラッシュは、URLの最後にスラッシュを入れるために記述しているのでスラッシュ不要ならカッコ内は空欄でOK。

リファレンスはこちら
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を入れて処理をしてくれる。

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=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のテンプレートタグには、取得をするものと表示をするものがあるので注意。

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

【表示】
theで始まるテンプレートタグ。
値を取ってきて表示する。echoをつける必要はない。

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

 

固定ページや記事でURLを表示したい場合

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

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

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

詳しい解説は下記の記事にて。