WordPressで固定ページのURLを取得する方法【初心者向け】

WordPressで固定ページのURLを取得する方法を説明するイメージ図
WordPressで固定ページのURLを取得する方法を解説するアイキャッチ画像

WordPressでは、テーマやプラグインの開発時に「特定の固定ページのURLを取得したい」という場面がよくあります。
たとえば「お問い合わせページ」へのリンクをテンプレート内に埋め込む場合や、サイト内ナビゲーションを動的に作成する場合などです。

本記事では、固定ページのURLを取得する基本的な方法から、実務でよく使われるケース別の書き方までわかりやすく解説します。

固定ページ編集やテーマファイル編集の基本が不安な場合は、あわせて以下を参照しておくと理解が深まりやすくなります。
[WordPressでテーマファイルを編集する方法(初心者向け)]
[子テーマの作り方とfunctions.phpを安全に編集する手順]

固定ページのURLを取得する主な方法

WordPressには、固定ページのURLを取得するための関数が複数用意されています。主に次の3つを使います。

  • get_permalink()
  • get_page_link()
  • home_url() または site_url() と組み合わせる方法

それぞれの仕組みと使いどころを見ていきます。

1. 固定ページIDを指定してURLを取得する方法

最も一般的なのは、固定ページの 投稿ID(post ID) を使って取得する方法です。

<?php
echo get_permalink( 10 );

上記のように、数字の部分に固定ページのIDを指定します。
固定ページを編集画面で開き、URL末尾の post=〇〇 の数字から確認できます。

特徴
  • もっとも確実で汎用性が高い
  • URLスラッグを変更してもリンク切れにならない
    (IDで取得しているため)

2. スラッグを使って固定ページのURLを取得する方法

スラッグがわかっている場合は、get_page_by_path()get_permalink() を組み合わせます。

<?php
$page = get_page_by_path( 'contact' );
echo get_permalink( $page->ID );
特徴
  • スラッグで指定できるため視覚的にわかりやすい
  • マルチサイトや階層構造のある固定ページでも利用可能

固定ページのスラッグは編集画面の「パーマリンク」から確認できます。

3. 固定ページテンプレート内で現在ページのURLを取得する方法

テンプレートファイル内で「今表示している固定ページのURL」を取得したい場合は、以下のように書きます。

<?php
echo get_permalink();

WordPressループ内であればIDを指定しなくても機能します。

補足

条件分岐と組み合わせる場合は、以下も便利です。
[WordPress条件分岐タグの基本まとめ(初心者向け)]

4. 固定ページのURLをリンクタグとして出力する方法

アンカータグをそのまま出力したい場合は、次のように書けます。

<?php
echo '<a href="' . get_permalink( 10 ) . '">お問い合わせはこちら</a>';

テンプレート内に直接リンクを埋め込む場合によく利用する方法です。

5. 固定ページのURLをショートコード化する方法(応用)

固定ページのリンクを複数箇所に使う場合や、運用担当者がブロックエディタで挿入できるようにしたい場合はショートコード化が便利です。

function shortcode_contact_url() {
    return get_permalink( 10 );
}
add_shortcode( 'contact_url', 'shortcode_contact_url' );

ブロックエディタでは以下のように記述できます。

[contact_url]

6. 固定ページのURLをテーマカスタマイザーで設定する方法(管理画面で管理)

URLをfunctions.phpに直接書いてしまうと、あとから変更したい場合にテーマ編集が必要になります。
管理画面で変更したい場合は、テーマカスタマイザーを利用する方法もあります。

作り方の詳細は以下の記事が参考になります。
[WordPressテーマカスタマイズの基本と安全な作業手順]

7. 固定ページのURLが取得できない場合に確認するポイント

固定ページURLの取得に失敗する場面では、次のような原因が多く見られます。

  • ページIDやスラッグが誤っている
  • 固定ページが「公開」になっていない
  • パーマリンクが変更されている
  • リライトルールの更新が必要(設定 → パーマリンク → 変更を保存)

内部処理の流れを知っておくと、エラーの原因がわかりやすくなります。
[WP_DEBUG の有効化とエラーログの見方]

まとめ

WordPressで固定ページのURLを取得する方法には、次のような種類があります。

  • IDを指定して取得する(最も一般的)
  • スラッグで指定して取得する(視覚的にわかりやすい)
  • 現在表示中のページURLを取得する
  • ショートコード化してブロックエディタで使えるようにする
  • 管理画面でURLを設定できるようにする(テーマカスタマイザー)

固定ページのURL取得はテーマ開発の基礎であり、多くの制作現場で利用されます。
この機会に使い分けを押さえておくと、今後のテーマ制作・カスタマイズがスムーズになります。