WordPressで記事IDを指定してパーマリンク(記事のURL)を取得する方法を紹介します。
get_postで取得できるguidにもURLが入っていますが、これはパーマリンクを設定していない場合のURL(この記事ならhttps://takalog.jp/?p=1313)になります。
get_postについてはこちらの記事を参照してください。
パーマリンクを設定している場合はget_permalinkを使うとアドレスバーに表示されるURLを取得(この記事ならhttps://takalog.jp/archives/1313)できます。
目次
get_permalink|記事のパーマリンクを取得する
get_permalinkは指定された記事IDのパーマリンクを取得します。
記事IDを指定せずに一覧ページ(インデックスやカテゴリーなど)のループ外で使用した場合、現在表示しているページのパーマリンクではなく、ループの最後にある投稿のURLが取得されます。
使い方
1 2 3 |
<?php $permalink = get_permalink($id, $leavename); ?> |
パラメータ
$id | [整数 | WP_Post] [オプション] [初期値:ループ内では表示中の記事ID] 記事IDまたは投稿オブジェクト |
---|---|
$leavename | [真偽値] [オプション] [初期値:false] ページ名を保持するかどうか 例)trueなら https://takalog.jp/sample-post ではなく、カスタム構造で表示される https://takalog.jp/%postname% が返されます。 |
使用例
パーマリンクを取得
1 2 3 4 5 6 7 |
<?php // 現在表示しているページのパーマリンクを取得 $permalink = get_permalink(); // 投稿IDが10の投稿のパーマリンクを取得 $permalink_10 = get_permalink( 10 ); ?> |
特定の記事へのリンクを作成
1 2 |
<!-- 投稿IDが10の投稿へのリンクを作成 --> <a href="<?php echo get_permalink( 10 ); ?>">おすすめ商品</a> |
戻り値
[文字列 | 真偽値]
パーマリンクのURLが返されます。
ページが存在しない場合など取得に失敗するとfalseが返ります。
まとめ
get_permalinkを使うと投稿ページや固定ページのパーマリンクを取得することができます。
get_postのguidを使ってページリンクを作成しても良いのですが、パーマリンクを設定していると見た目が異なるURLになってしまいます。
サイトに訪れたユーザーに違和感を抱かせないためにはget_permalinkで取得できるURLを使うことをおすすめします。