
edit_comment_link()とは?
edit_comment_link() は
特定のコメントを編集する管理画面へのリンクを出力するテンプレートタグ
です。
これをコメントの表示テンプレートに組み込むと、ログイン中で編集権限を持つユーザーだけに
「このコメントを編集するリンク」が表示されます。
たとえば、テーマでコメントリストを出す際、管理者が簡単に編集画面に飛べるようにするために使います。
edit_comment_link()何が表示される?
実行すると、以下のようなHTMLリンクが出力されます。
<a href="https://example.com/wp-admin/comment.php?action=editcomment&c=123">Edit</a>このリンクをクリックすると、そのコメントの編集画面に移動できます。
edit_comment_link()の基本的な書式
edit_comment_link( string $link = null, string $before = '', string $after = '' )edit_comment_link()の引数
| 引数 | 型 | 説明 |
|---|---|---|
$link | string | リンクテキスト(例:「Edit」「編集」)。省略時は__('Edit This') |
$before | string | リンクの直前に出力するHTML(例:<span>など) |
$after | string | リンクの直後に出力するHTML |
戻り値はありません(echoで直接出力される)
edit_comment_link()の表示条件
注意してほしいのは、誰でも表示できるわけではないことです。
- ログイン中のユーザーで
edit_comment権限を持っている(通常は管理者・編集者)
この条件を満たしていない場合、何も表示されません。
edit_comment_link()のよく使う実装例
シンプルな例
edit_comment_link();出力(管理者の場合):
<a href="https://example.com/wp-admin/comment.php?action=editcomment&c=123">Edit This</a>テキストを変更
edit_comment_link('コメントを編集');前後にHTMLをつける
edit_comment_link('編集', '<span class="edit-link">[', ']</span>');出力:
<span class="edit-link">[<a href="...">編集</a>]</span>コメント表示テンプレートに組み込む
wp_list_comments()のコールバックやcomments.phpで利用します。
例:シンプルなコメント表示コード
<li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
<div class="comment-author vcard">
<?php echo get_avatar($comment, 48); ?>
<?php printf(__('<cite>%s</cite>'), get_comment_author_link()); ?>
</div>
<div class="comment-meta commentmetadata">
<a href="<?php echo esc_url(get_comment_link($comment->comment_ID)); ?>">
<?php printf(__('%1$s at %2$s'), get_comment_date(), get_comment_time()); ?>
</a>
<?php edit_comment_link('編集', ' | '); ?>
</div>
<div class="comment-text">
<?php comment_text(); ?>
</div>
</li>この例では「編集」リンクが日時の横に表示されます。
edit_comment_link()のカスタマイズ例
リンクをボタン風にする
edit_comment_link('編集', '<span class="edit-btn">', '</span>');CSS例:
.edit-btn a {
background: #0073aa;
color: #fff;
padding: 4px 8px;
border-radius: 3px;
text-decoration: none;
}
.edit-btn a:hover {
background: #005177;
}edit_comment_link()のセキュリティ
- 出力されるURLはWordPressが自動的に生成
- 権限チェックも自動
esc_url()で二重サニタイズは不要current_user_can()などで追加条件を付ける必要は基本的にない
edit_comment_link()のよくある質問
- ゲストにも表示できる?
-
できません。ログインユーザー+権限が必須です。
- 編集リンクを消したい
-
テンプレートから
edit_comment_link()を削除すればOKです。 - 表示テキストを一括変更したい
-
$linkパラメータで自由に設定可能です。 - 出力内容をカスタムHTMLにしたい
-
$beforeと$afterを組み合わせると柔軟にレイアウトできます。
代替手段
もし「リンクではなくボタンにしたい」場合は、以下のようにHTMLを組み替えられます。
ボタン形式の例
edit_comment_link('<button class="edit-button">編集</button>', '', '');これにより<a>ではなくボタンっぽい見た目にできます。
(※実際には<a>タグの中に<button>が入るので、完全なボタンではなく見た目だけの調整です)
他の関連関数
| 関数 | 用途 |
|---|---|
comment_reply_link() | コメントへの返信リンクを出力 |
get_edit_comment_link() | 編集リンクURLを文字列で取得 |
edit_post_link() | 投稿の編集リンクを出力 |
get_edit_comment_link()の使い方
「URLだけ取得して自分でHTMLを作りたい」場合はこちらを使います。
$url = get_edit_comment_link();
echo '<a href="' . esc_url($url) . '">コメントを編集</a>';実用コード例
条件分岐で表示を切り替える
たとえば、特定のカスタムロールだけリンクを見せたい場合
if (current_user_can('manage_options')) {
edit_comment_link('管理者専用編集');
}まとめ
edit_comment_link()はコメントの編集画面へのリンクを出力するテンプレートタグ- 管理者など権限ユーザーだけ表示される
$link,$before,$afterで柔軟にカスタマイズ可能- セキュリティ・権限管理は自動
- URLのみ欲しい場合は
get_edit_comment_link()を使用
活用ポイント
- コメントテンプレートに組み込む
- 管理者が素早く編集できる導線を確保
- テーマカスタマイズで装飾やラベルを調整