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