ワードプレスのget_edit_comment_linkフィルタの使用方法・解説

概要

get_edit_comment_linkフィルタは、コメント編集用のリンクを取得する際に利用されるフィルタです。このフィルタは、コメントを編集するためのリンクを生成する際に、他の情報と組み合わせたり、カスタマイズするためによく使われます。具体的には、以下のような機能を実装する際に使用されることが多いです。

  1. コメント編集リンクの表示内容を変更する。
  2. 特定の条件に基づいてリンクを非表示にする。
  3. デザインやスタイリングのためにクラス名を追加する。
  4. 特定のユーザーやロールに基づいてリンクの有効/無効を設定する。
  5. リンク先のURLを変更する。
  6. コメント編集時のセキュリティ機能を追加するためのカスタマイズ。
  7. リンクテキストを多言語対応にする。
  8. コメントの状態に応じたリンクの動的変更。

構文

add_filter('get_edit_comment_link', 'your_custom_function', 10, 2);

パラメータ

  • $link (string): 編集リンクのHTML。
  • $comment (WP_Comment): コメントオブジェクト。

戻り値

フィルタを通過した後の編集コメントリンクのHTML。

関連する関数

フィルタ名のスラグ

使用可能なバージョン

このフィルタはWordPress 2.9以降で使用可能です。

コアファイルのパス

wp-includes/link-template.php

この関数のアクションでの使用可能性

アクション 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード1: コメント編集リンクにクラスを追加

このサンプルコードは、コメント編集用のリンクにカスタムクラスを追加します。

add_filter('get_edit_comment_link', 'add_custom_class_to_edit_comment_link', 10, 2);
function add_custom_class_to_edit_comment_link($link, $comment) {
    return str_replace('href=', 'class="custom-class" href=', $link);
}

(参考:https://developer.wordpress.org/reference/hooks/get_edit_comment_link/)

サンプルコード2: コメント編集リンクのテキストを変更

このサンプルでは、デフォルトの編集リンクテキストを「編集」から「このコメントを編集」に変更します。

add_filter('get_edit_comment_link', 'modify_edit_comment_link_text', 10, 2);
function modify_edit_comment_link_text($link, $comment) {
    return str_replace('Edit', 'このコメントを編集', $link);
}

(参考:https://developer.wordpress.org/reference/hooks/get_edit_comment_link/)

サンプルコード3: 管理者のみ編集リンクを表示

このコードは、管理者以外のユーザーにはコメント編集リンクを表示しないようにします。

add_filter('get_edit_comment_link', 'restrict_edit_comment_link_to_admin', 10, 2);
function restrict_edit_comment_link_to_admin($link, $comment) {
    if (!current_user_can('administrator')) {
        return '';
    }
    return $link;
}

(参考:https://developer.wordpress.org/reference/hooks/get_edit_comment_link/)

サンプルコード4: 編集リンクを非表示にする条件を追加

このサンプルでは、コメントが「承認待ち」の場合には編集リンクを非表示にします。

add_filter('get_edit_comment_link', 'hide_edit_link_for_pending_comments', 10, 2);
function hide_edit_link_for_pending_comments($link, $comment) {
    if ($comment->comment_approved == '0') {
        return '';
    }
    return $link;
}

(参考:https://developer.wordpress.org/reference/hooks/get_edit_comment_link/)

サンプルコード5: 編集リンクのURLを変更

このコードは、コメント編集リンクのURLを特定のページにリダイレクトします。

add_filter('get_edit_comment_link', 'custom_edit_comment_link_url', 10, 2);
function custom_edit_comment_link_url($link, $comment) {
    return esc_url(home_url('/custom-edit-page/?comment_id=' . $comment->comment_ID));
}

(参考:https://developer.wordpress.org/reference/hooks/get_edit_comment_link/)

この関数について質問する


上の計算式の答えを入力してください