MENU

get_permalink()

get_permalink() は、WordPressの投稿や固定ページのパーマリンク(URL)を取得するためのテンプレートタグです。

投稿IDを指定することで、特定の投稿へのURLも取得でき、投稿ページやアーカイブページへのリンク作成に頻繁に使用されます。

目次

機能の説明

get_permalink() は、指定した投稿やページのURLを返す関数です。このテンプレートタグは、URLリンクの生成を自動化し、内部リンクの管理を簡略化します。

  • 投稿IDを指定しない場合:現在の投稿のパーマリンクを取得します。
  • 投稿IDを指定する場合:任意の投稿や固定ページのURLを取得します。
  • カスタム投稿タイプにも対応しています。

シンプルなコード例

<?php 
echo get_permalink();

出力例

https://example.com/sample-post

使い方の解説

get_permalink() は、テンプレートファイルやカスタム関数の中でよく使用されます。以下のように、投稿の詳細ページへのリンクを作成する場合に使います。

  • 投稿IDの指定:投稿IDを渡すと、その投稿のURLが取得されます。
  • 現在の投稿のURL取得:投稿IDを省略すると、現在の投稿のURLを取得します。

投稿IDを指定して使用する例

<?php 
echo get_permalink(42);

出力例

https://example.com/sample-post

投稿IDが「42」の投稿のURLが出力されます。IDを指定することで、どのテンプレートでも任意の投稿へのリンクを取得できます。

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

the_permalink()

the_permalink() は、現在の投稿のURLを直接画面に出力する関数です。get_permalink() と違い、echo を省略できます。

<?php 
the_permalink();

出力例

https://example.com/sample-post

the_permalink() は、get_permalink() の出力をシンプルに画面へ表示するための関数です。URLを直接出力したい場合に使用します。

get_the_title()

get_the_title() は、投稿のタイトルを取得するテンプレートタグです。URLと一緒にリンクテキストとして使用することが多いです。

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

出力例

<a href="https://example.com/sample-post">Sample Post</a>

get_permalink()get_the_title() を組み合わせることで、投稿へのリンクをタイトル付きで表示します。

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

投稿IDが不明な場合に現在の投稿のURLを取得する

ループ内で使用する場合、投稿IDを指定しなくても現在の投稿のURLを取得できます。

<?php 
if (have_posts()) : 
    while (have_posts()) : the_post();
        echo get_permalink();
    endwhile;
endif;

カスタム投稿タイプのパーマリンクを取得する

カスタム投稿タイプのURLは get_post_type_archive_link() を使用して取得します。

<?php 
echo get_post_type_archive_link('custom_post_type');

出力例

https://example.com/custom-post-type

get_post() で取得できる投稿情報

<?php 
$post = get_post(42); 
echo $post->post_title;
echo $post->post_date;

出力できる情報

  • post_title:投稿のタイトル
  • post_content:投稿の本文
  • post_date:公開日
  • post_author:投稿者ID

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

投稿が存在しない場合にエラーが出る

存在しない投稿IDを指定した場合、URLが取得できないことがあります。

解決方法

投稿が存在するかどうかを事前に確認します。

<?php 
if (get_post_status(42)) {
    echo get_permalink(42);
} else {
    echo '投稿が見つかりません。';
}

カスタム投稿タイプのURLが正しく取得できない

パーマリンクの設定が正しくないと、カスタム投稿タイプのURLが取得できないことがあります。

解決方法

パーマリンク設定をリセットしてください(WordPressの管理画面から保存し直す)。

Q&A

get_permalink() をループ外で使えますか?

投稿IDを指定することで、ループ外でも使用可能です。

<?php 
echo get_permalink(42);

カスタム投稿タイプのアーカイブURLはどうやって取得しますか?

get_post_type_archive_link() を使って取得します。

<?php 
echo get_post_type_archive_link('custom_post_type');

URLの末尾にスラッシュが追加されない場合の対処法は?

user_trailingslashit() 関数を使って、URLの末尾にスラッシュを追加できます。

<?php 
$url = get_permalink();
echo user_trailingslashit($url);

まとめ

get_permalink() は、WordPressの投稿や固定ページへのURLを取得するための非常に重要なテンプレートタグです。

内部リンクの管理を自動化し、the_permalink()get_the_title() と組み合わせることで、SEOに配慮したリンクを簡単に作成できます。

また、カスタム投稿タイプのサポートや、URL末尾のスラッシュの有無を管理するための工夫も可能です。エラー回避のために、投稿が存在するかどうかの確認も忘れずに行いましょう。

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

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次