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()
は、WordPressの投稿や固定ページへのURLを取得するための非常に重要なテンプレートタグです。
内部リンクの管理を自動化し、the_permalink()
や get_the_title()
と組み合わせることで、SEOに配慮したリンクを簡単に作成できます。
また、カスタム投稿タイプのサポートや、URL末尾のスラッシュの有無を管理するための工夫も可能です。エラー回避のために、投稿が存在するかどうかの確認も忘れずに行いましょう。
コメント