Go to top Go to bottom

記事ページへのリンクを出力するにはthe_permalink()関数を、文字列として取得するにはget_permalink()を使います。

用例
  • 投稿したユーザ名を表示する
  • 同じユーザの投稿一覧へのリンクを表示する
関連
Codex

個別ページへのURLを出力する

WordPressループを用いて記事の一覧を表示したら、今度はそれぞれの記事へのリンクを付けることになると思います。個別記事へのURLを取得するには、the_permalink()を使用します。たいていの場合次のように<a>タグと合わせて使うことになるでしょう。

<a href="<?php the_permalink(); ?>">続きを読む</a>

この関数はWordPressループの中でしか使えません。

一般的なブログでは、記事のタイトルをクリックすると記事一覧に遷移します。これを実現するためにまず思いつくのは、次のような方法でしょう。

<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>

これでも特に問題にはなりませんが、the_title()は前後に出力する文字列を第1引数、第2引数に渡すよう設計されています。したがって、以下のように記載するほうがWordPressの思想に合っているといえるかもしれません。

<?php the_title( '<h2><a href="' . esc_url( get_permalink() ) . '">', '</a></h2>' ); ?>

こうしておくと、仮にタイトルが空だった場合、中身のないタグが出力されるのを防ぐことができます。WordPress公式のテーマでもこのように実装されていますね。

なお、get_permalink()については次のセクションを参照してください。

個別ページへのURLを取得する

個別ページへのURLを文字列として取得するには、get_permalink()を使います。

<?php $permalink = get_permalink(); ?>

この関数は、WordPressループ内で使用すると現在対象となっている記事のURLを返します。この点ではthe_permalink()と同じ挙動をします。

ところが、get_permalink()投稿のIDを指定すればWordPressループの外でもURLを取得してくることができます

テンプレートタグ

get_permalink( $post, $leavename )

投稿のURLを取得する。

$post投稿のID、またはURLを取得したいWP Postオブジェクト。指定しない場合はグローバルの$postオブジェクトが使用される
$leavenametrueにすると、URLではなくパーマリンク構造を返す。デフォルトはfalse

たとえば、次のコードは記事IDが99番の投稿のURLを返します。

<?php $permalink = get_permalink( 99 ); ?>

仮に99番の投稿が存在しなかった場合は、falseが返ってきます。

get_permalink()get_the_permalink()

get_permalink()ではなく、get_the_permalink()という関数も存在します。get_the_permalink()は関数の中でget_permalink()を呼んでいるだけですので、名前が違いますが全く同じ挙動をする関数です。詳しくはここを参照してください。