説明
edit_post_link() は、投稿の編集画面へのリンクを出力する関数です。編集の権限があるユーザーにだけ、表示されます。
基本構文
edit_post_link( string $text = null, string $before = '', string $after = '', int|WP_Post $post = 0, string $css_class = 'post-edit-link' );
引数
$text:リンクの文字列(省略すると、既定の文言。日本語環境では「編集」など)$before:リンクの前に出力するHTML$after:リンクの後に出力するHTML$post:投稿のIDまたはオブジェクト(省略すると現在の投稿)$css_class:リンクに付けるCSSクラス
戻り値
戻り値はありません。リンクのHTMLを、その場に出力します。
使い方(サンプル)
edit_post_link( '編集', '<p class="edit">', '</p>' );
注意点
- 編集の権限がないユーザーには、何も出力されません。
- ループの中で使うのが基本です。
実務での使いどころ
- ログイン中の管理者や編集者に、記事から編集画面へ、すぐ移動できるリンクを出すとき。
- テーマのデザインに合わせて、リンクの文言やクラスを変えるとき。
よくあるミスと対処
- リンクの前後に、自分でHTMLを書いている。権限のないユーザーには、リンクだけでなく、前後の
$before・$afterも出力されない。前後のHTMLは、引数で渡す。 - 値として使いたいのに、これを使っている。この関数は出力するだけ。URLは
get_edit_post_link()で取得する。 - ループの外で、投稿を指定せずに呼んでいる。
NG例
echo '<p class="edit">';
edit_post_link();
echo '</p>'; // 権限がないユーザーにも、空の段落が残る
OK例
edit_post_link( '編集', '<p class="edit">', '</p>' );
使い分け早見表
| 関数 | 返す・出力するもの |
|---|---|
edit_post_link() |
編集リンクのHTMLを出力する |
get_edit_post_link() |
編集画面のURLを返す(権限がなければ null) |
admin_url() |
管理画面のURL |

コメント