edit_comment_link()
は、コメントの編集画面へのリンクを生成するためのテンプレートタグです。このリンクは、投稿者や管理者が素早くコメントの編集を行うために使用されます。
機能の説明
edit_comment_link()
は、投稿されたコメントの編集画面へのリンクを表示します。このタグを使うことで、管理者や権限のあるユーザーが、特定のコメントを簡単に編集することができます。
- 引数でリンクテキストやクラス名を指定することが可能です。
- ログイン中のユーザーの権限に応じてリンクが表示され、権限のないユーザーにはリンクが表示されません。
シンプルなコード例
edit_comment_link('コメントを編集');
出力例
<a href="https://example.com/wp-admin/comment.php?action=editcomment&c=42">コメントを編集</a>
使い方の解説
edit_comment_link()
は、各コメントの一覧で編集用リンクを表示する際に使います。WordPressのテーマファイル内の comments.php
などで使用するのが一般的です。
引数
$text
(任意):リンクのテキスト(例:"編集"
)。$before
/$after
(任意):リンクの前後に表示する文字列やHTMLタグ。$comment_id
(任意):編集リンクを表示するコメントのID(省略時は現在のコメントIDが使用されます)。
コメント編集リンクを表示する例
edit_comment_link('編集する', '<span>', '</span>');
この例では、コメントの横に「編集する」というリンクを表示し、HTMLの <span>
タグで囲んでいます。管理者やコメントの投稿者がリンクをクリックすると、コメント編集画面に遷移します。
出力例
<span><a href="https://example.com/wp-admin/comment.php?action=editcomment&c=42">編集する</a></span>
一緒に使うことが多い関連タグ
get_comments()
get_comments()
は、指定した投稿や全体のコメントを取得するテンプレートタグです。これと一緒に使うことで、各コメントに編集リンクを付加できます。
$comments = get_comments(array('post_id' => get_the_ID()));
foreach ($comments as $comment) {
echo '<p>' . $comment->comment_content . '</p>';
edit_comment_link('編集', '[', ']', $comment->comment_ID);
}
このコードは、現在の投稿に対するすべてのコメントを取得し、それぞれのコメントの横に「編集」リンクを表示します。
comment_text()
comment_text()
は、各コメントの内容を表示するテンプレートタグです。edit_comment_link()
と組み合わせて、コメント内容と編集リンクを表示するのが一般的です。
wp_list_comments(array(
'style' => 'div',
'callback' => function($comment, $args, $depth) {
echo '<div>';
comment_text($comment->comment_ID);
edit_comment_link('編集', ' [', ']');
echo '</div>';
}
));
この例では、wp_list_comments()
でコメントを一覧表示し、それぞれのコメントに編集リンクを付与しています。
追加情報を取得したい場合
get_comment()
でコメントの詳細を取得する
get_comment()
を使用することで、コメントの詳細な情報を取得できます。
$comment = get_comment(42);
echo 'Author: ' . $comment->comment_author . '<br>';
echo 'Content: ' . $comment->comment_content;
このコードでは、IDが42のコメントの投稿者名と内容を取得して表示します。
出力できる情報
- comment_ID: コメントのID
- comment_post_ID: コメントが付いた投稿のID
- comment_author: コメント投稿者の名前
- comment_content: コメントの内容
- comment_date: コメントが投稿された日時
使用する事で想定されるトラブル
編集リンクが表示されない
編集リンクは、管理者やコメントの投稿者にのみ表示されます。
解決策
適切なユーザーでログインしているか確認してください。
if (current_user_can('edit_comment', $comment->comment_ID)) {
edit_comment_link();
}
コメントIDが取得できない
テーマファイルの comments.php
内で $comment
グローバル変数が正しくセットされていない可能性があります。
解決策
global $comment;
を使用して、グローバル変数を明示的に呼び出します。
global $comment;
edit_comment_link('編集', '', '', $comment->comment_ID);
Q&A
まとめ
edit_comment_link()
は、コメントの編集リンクを生成する便利なテンプレートタグです。WordPressのテーマでコメント一覧を表示する際に使用することで、管理者や投稿者が簡単にコメントを編集できるようになります。関連する get_comments()
や comment_text()
との組み合わせで、コメントの表示と編集の操作をスムーズに行えます。
トラブルが発生する場合、ユーザー権限の確認やコメントIDの取得方法を見直すことで解決できます。
コメント