MENU

get_page_link()

get_page_link() は、指定された固定ページ(Page)のパーマリンク(URL)を取得するためのテンプレートタグです。ページIDを指定することで、そのページのURLを取得でき、カスタムパラメータを追加することも可能です。

目次

機能の説明

get_page_link() は、WordPressの固定ページ(page post type)のURLを取得するための関数です。通常の投稿とは異なり、固定ページ専用のURLを取得する際に使用します。

  • 引数にはページIDを指定します。
  • 投稿の状態(公開、非公開など)に関わらず、指定したページのURLが返されます。
  • URLを返すだけで直接出力しないため、echoを使って表示します。

シンプルなコード例

<?php
echo get_page_link(10);

出力例

https://example.com/sample-page

使い方の解説

get_page_link() は、主に特定の固定ページのURLを取得するために使用します。たとえば、ナビゲーションメニューや内部リンクを生成するときに便利です。また、動的に生成するページリストや、ページをIDベースで管理する場合にも使われます。

固定ページのIDを指定してURLを取得例

<?php
$page_url = get_page_link(20);
echo $page_url;

出力例

https://example.com/about-us

get_page_link() にページID 20 を渡すことで、その固定ページのURLが取得されます。ここでは「About Us」ページのリンクが取得されます。

クエリパラメータを追加したURLの取得

<?php
$url = add_query_arg('ref', 'newsletter', get_page_link(20));
echo $url;

出力例

https://example.com/about-us?ref=newsletter

add_query_arg() を使ってURLにパラメータを追加することで、例えば「ニュースレター」からの参照であることを示すリンクを生成しています。

一緒に使うことが多い関連タグ

get_permalink()

get_permalink() は、投稿や固定ページを問わず、あらゆるパーマリンクを取得できるタグです。get_page_link() は固定ページ専用ですが、get_permalink() なら投稿やカスタム投稿タイプのURLにも対応しています。

<?php
echo get_permalink(20);

出力例

https://example.com/about-us

wp_list_pages()

wp_list_pages() は、ページの一覧をHTMLリスト形式で出力するタグです。固定ページのナビゲーションを作成する際に便利です。

<?php
wp_list_pages(array(
    'title_li' => '',
));

get_page_link()get_the_title() の組み合わせ

<?php
echo '<a href="' . get_page_link(20) . '">' . get_the_title(20) . '</a>';

出力例

<a href="https://example.com/about-us">About Us</a>

この例では、get_page_link() で取得したURLをリンクにし、get_the_title() でそのページのタイトルをリンクテキストとして表示しています。

追加情報を取得したい場合

ページのステータスやタイプも取得する

<?php
$page = get_post(20);
echo 'タイトル: ' . $page->post_title;
echo 'ステータス: ' . $page->post_status;
echo 'タイプ: ' . $page->post_type;

出力できる情報

  • post_title: ページのタイトル
  • post_status: 公開状態(公開、非公開、下書きなど)
  • post_type: 投稿タイプ(通常は page

使用する事で想定されるトラブル

無効なページIDを指定した場合

存在しないページIDを指定すると、空のURLが返されます。

解決策

get_post() でページの存在を確認してから使用します。

<?php
if (get_post_status(20)) {
    echo get_page_link(20);
} else {
    echo 'このページは存在しません。';
}

クエリパラメータが正しく追加されない

URLの形式に誤りがあると、クエリパラメータが正しく追加されません。

解決策

add_query_arg() を使い、URL形式を整えることで回避します。

Q&A

get_page_link()get_permalink() の違いは何ですか?

get_page_link() は固定ページ専用のURLを取得するタグです。一方、get_permalink() は投稿やカスタム投稿タイプにも対応します。

ページIDがわからない場合はどうすればいいですか?

WordPress管理画面の「固定ページ」一覧で、ページを編集するとURL内にIDが表示されています。

URLの末尾にスラッシュがつかない場合の対処法は?

user_trailingslashit() を使って、末尾にスラッシュを追加します。

まとめ

get_page_link() は、特定の固定ページのURLを取得するためのテンプレートタグです。get_permalink() と異なり、固定ページに特化しています。ナビゲーションや内部リンクの生成で便利に使え、クエリパラメータの追加にも対応できます。投稿の状態を考慮することで、無効なリンクを回避することも可能です。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次