フリーランス|WEB 制作経験丸7年、制作会社様からのご依頼に丁寧・高クオリティでお手伝いいたします。 IRODORI DESIGN

B L O G

【WordPress】投稿のパーマリンクを取得する関数解説

get_permalink()
get_the_permalink()
the_permalink()
WordPress
関数

WordPressの投稿のパーマリンクを取得する場合、いくつかの関数が用意されています。
しかし、どの関数を使用すればいいのか、使い分けはどうしたらいいのか、ふと疑問に思うこともあります。
今回はWordPressの投稿のパーマリンクを取得する関数を違いと使い分けのポイントを踏まえてご紹介したいと思います。

the_permalink()関数

the_permalink()関数は、WordPressで各投稿のパーマリンクを表示する時に使用します。
この関数は、WordPressのループ内で使用することが一般的です。

基本的な使用方法

この関数の使用方法は凄くシンプルで、以下のように記述します。

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<a href="<?php the_permalink(); ?>">この投稿を読む</a>

<?php endwhile; endif; ?>

このコードをarchive.phpなどのテーマのテンプレートファイルのループ内で挿入することで、各投稿のパーマリンクを表示することが出来ます。

get_permalink()関数

get_permalink()関数は、WordPressで各投稿のパーマリンクを取得する時に使用します。
the_permalink()関数と異なり、get_permalink()関数はパーマリンクを表示するのではなく、文字列として返します。
これにより、パーマリンクを変数に保存したり、他の関数と組み合わせたりすることができます。

基本的な使用方法

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<a href="<?php echo get_permalink(); ?>">この投稿を読む</a>

<?php endwhile; endif; ?>

このコードをarchive.phpなどのテーマのテンプレートファイルのループ内で挿入することで、各投稿のパーマリンクを表示することが出来ます。

ただし、get_permalink()関数はループ外でも使用することが出来ます。

パラメータ指定

get_permalink()関数は、2つのパラメータを指定することが出来ます。

  • $post:投稿IDを指定することで特定の投稿のパーマリンクを取得します。
  • $leavename:trueに設定すると、パーマリンクの形式が変わります。

特定の投稿のパーマリンクを取得

特定の投稿のパーマリンクを取得する場合、以下のように記述します。

<?php echo get_permalink(1620); ?>

指定したIDの投稿のパーマリンクを取得し、表示することが出来ます。ループ外で使用することが出来ます。

get_the_permalink()関数との違いは?

WordPressには似た関数にget_the_permalink()関数があります。get_the_permalink()関数は以下のように適宜されています。

function get_the_permalink( $post = 0, $leavename = false ) {
	return get_permalink( $post, $leavename );
}

get_the_permalink()関数の中ではget_permalink()関数を呼び出しているだけです。そのため、機能は全く同じなのでどちらを使用しても使用用途、結果、全て同じです。

それぞれの関数の違いと使い分け

the_permalink()関数とget_permalink()関数はどちらもWordPressで投稿のパーマリンクを取得するための関数ですが、主な違いは出力方法と特定の投稿のパーマリンクを取得出来るかどうかです。

the_permalink()関数

  • 出力方法:パーマリンクを直接HTMLに出力します。
  • 引数:引数を指定することは出来ません。
  • 使用条件:WordPressのループ内で使用します。

get_permalink()関数

  • 出力方法:パーマリンクを文字列として返します。
  • 引数:引数を指定することが出来ます。
  • 使用条件:WordPressのループ内外、どちらでも使用出来ます。

使い分けのポイント

直接表示するか、操作が必要か

the_permalink()関数は単純にパーマリンクを表示するのに適しています。
一方、get_permalink()関数はパーマリンクをさらに操作したい場合(例:保存、条件分岐、組み合わせなど)に適しています。

ループ内か外か

the_permalink()関数は主にループ内で使用します。get_permalink()関数はループ内外どちらでも使用することが出来ます。

特定の投稿を指定

特定の投稿を指定する場合、get_permalink()関数を使用します。

まとめ

今回は投稿のパーマリンクを取得する関数をご紹介しました。
それぞれどんな特性があり、使用が適しているのはどんな場面なのか、それぞれの状況にあった関数を使用していきたいですね。