012
個別ページ(記事ページ)へのURLを取得・出力する
Library
記事ページへのリンクを出力するには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オブジェクトが使用される |
|---|---|
$leavename | trueにすると、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()を呼んでいるだけですので、名前が違いますが全く同じ挙動をする関数です。詳しくはここを参照してください。
Comment