概要
get_edit_user_link
フィルタは、WordPressにおけるユーザー編集ページのURLを取得する際に利用されるフィルタです。このフィルタを使用することで、デフォルトのユーザー編集ページのリンクをカスタマイズしたり、新たに別のページにリダイレクトしたりすることが可能です。以下は、このフィルタがよく使われるシナリオの例です。
- ユーザーのロールに応じた異なる編集リンクを生成する
- 編集ページのカスタムパラメータを追加する
- 特定の条件に基づいて編集リンクを無効化する
- ユーザーの編集権限に応じたリダイレクトの構成
- 外部の管理ツールとの統合のためのカスタムリンク生成
- ショートコードやウィジェット内でのユーザー編集リンクの提供
- ブランディングのためのURLの一貫したスタイリング
- 特定のユーザー情報を持つカスタムページへのリンク作成
構文
add_filter('get_edit_user_link', 'custom_edit_user_link', 10, 2);
パラメータ
$link
: 元の編集リンクのURL。$user_id
: 編集するユーザーのID。
戻り値
フィルタによって変更された編集リンクのURL。
関連する関数
使用可能なバージョン
このフィルタは、WordPress 2.0以降のバージョンで使用可能です。
コアファイルのパス
このフィルタはwp-includes/user.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: ユーザーのロールに基づくリンクの変更
function custom_edit_user_link($link, $user_id) {
$user = get_userdata($user_id);
if (in_array('administrator', (array) $user->roles)) {
return 'https://example.com/admin-edit/' . $user_id;
}
return $link; // デフォルトのリンクを返します
}
add_filter('get_edit_user_link', 'custom_edit_user_link', 10, 2);
このコードでは、管理者ユーザーに対してカスタム編集リンクを提供しています。
サンプルコード2: 編集リンクに追加パラメータを追加
function append_query_arg_to_edit_link($link, $user_id) {
return add_query_arg('ref', 'custom_source', $link);
}
add_filter('get_edit_user_link', 'append_query_arg_to_edit_link', 10, 2);
このコードは、ユーザー編集リンクにカスタムクエリパラメータを追加します。
サンプルコード3: 特定のユーザーに対してリンクを無効化
function disable_edit_link_for_user($link, $user_id) {
if ($user_id == 1) { // ユーザーID 1のユーザーの場合
return ''; // リンクを無効化
}
return $link;
}
add_filter('get_edit_user_link', 'disable_edit_link_for_user', 10, 2);
このコードは、特定のIDを持つユーザーに対して編集リンクを無効にします。
サンプルコード4: 外部管理ツールへのリダイレクト
function redirect_to_external_tool($link, $user_id) {
return 'https://external-tool.com/edit/' . $user_id;
}
add_filter('get_edit_user_link', 'redirect_to_external_tool', 10, 2);
このコードは、ユーザーの編集リンクを外部の管理ツールにリダイレクトします。
サンプルコード5: リンクの整形
function custom_format_edit_link($link, $user_id) {
return '<strong><a href="' . esc_url($link) . '">Edit User</a></strong>';
}
add_filter('get_edit_user_link', 'custom_format_edit_link', 10, 2);
このコードは、ユーザー編集リンクを強調するためにHTMLで整形します。