- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
「テンプレートタグ/get permalink」の版間の差分
(残りを和訳しました。) |
(→参考: セクション新設、複数カテゴリーに関する参考を追記。) |
||
71行目: | 71行目: | ||
<a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Monthly Events' ) ) ); ?>">Monthly Events</a> | <a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Monthly Events' ) ) ); ?>">Monthly Events</a> | ||
</pre> | </pre> | ||
+ | |||
+ | == 参考 == | ||
+ | |||
+ | 例えば投稿に親・子・孫の 3 つのカテゴリーが付いているとき、カスタムパーマリンク構造の <tt>%category%</tt> にカテゴリー ID が最小のカテゴリーが選ばれる規則があるため、「親/子/孫」にならず「親」や「親/子」になる場合があります。この規則を変えるにはフィルターフック [[プラグイン API/フィルターフック一覧/post_link_category|<tt>'post_link_category'</tt>]] /[https://developer.wordpress.org/reference/hooks/post_link_category/ en] を使ってください。<!-- 2015年8月15日 gblsm --> | ||
<div id="Change_Log"> | <div id="Change_Log"> |
2015年8月15日 (土) 00:34時点における版
目次
説明
PHP で使えるように、投稿または固定ページの パーマリンク を取得します。このタグはパーマリンクを出力しません。ループ の外で使うことができます。失敗した場合は false
を返します。
プラグインやテーマの中では、setup_theme/en アクション以降に使用できます。これ以前(plugins_loaded/en を含む)は、回復不可能なエラーを発生します。
注意: パラメータの ID を指定せずに一覧ページ(インデックスやアーカイブなど)のループの外側で使用した場合、現在の表示しているページのパーマリンクではなく、ループの一番最後の投稿の URL を返します。Trac チケット 9963 を参照してください。
使い方
<?php $permalink = get_permalink( $id, $leavename ); ?>
パラメータ
- $id
- (複合) (オプション) 投稿または固定ページの整数型の ID、あるいは投稿オブジェクト
- 初期値: ループ内で使用した場合、表示中の投稿の ID。
- $leavename
- (真偽値) (オプション) 投稿名あるいは固定ページ名(注: %postname%)を保持するかどうか。trueの場合、実際の URI ではなく構造的なリンクを返します。 例: http://www.example.com/my-post ではなく http://www.example.com/%postname%
- 初期値: false
戻り値
- (文字列|真偽値)
- パーマリンクの URL。失敗すると false(ページが存在しない場合)。
用例
<a href="<?php echo get_permalink( 268 ); ?>">My link to a post or page</a>
デフォルトの使い方
(ループ内で使用される)現在の投稿のパーマリンク。このタグはパーマリンクを出力しないので、この例では PHP の echo コマンドを使用しています。
Permalink for this post: <?php echo get_permalink(); ?>
特定の投稿へのリンク
あるお知らせリストの中に、特定の投稿 2 つ(投稿 ID が 1 と 10)のパーマリンクを出力します。上の例と同様に、パーマリンクを表示するために PHP の echo コマンドを使用しています。
<ul> <li>MyBlog info: <ul> <li><a href="<?php echo get_permalink(1); ?>">About MyBlog</a></li> <li><a href="<?php echo get_permalink(10); ?>">About the owner</a></li> </ul> </li> </ul>
ID の代わりに投稿オブジェクトを渡す
投稿 ID の代わりにページタイトルを使ってパーマリンクを取得する方法です。
<a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Monthly Events' ) ) ); ?>">Monthly Events</a>
参考
例えば投稿に親・子・孫の 3 つのカテゴリーが付いているとき、カスタムパーマリンク構造の %category% にカテゴリー ID が最小のカテゴリーが選ばれる規則があるため、「親/子/孫」にならず「親」や「親/子」になる場合があります。この規則を変えるにはフィルターフック 'post_link_category' /en を使ってください。
変更履歴
1.0.0 : 新規導入
ソースファイル
get_permalink() は wp-includes/link-template.php
にあります。
関連資料
get_permalink(),
the_permalink(),
post_permalink(),
permalink_anchor(),
permalink_single_rss()
最新英語版: WordPress Codex » Function Reference/get_permalink (最新版との差分)