函数文档

get_edit_user_link()

💡 云策文档标注

概述

get_edit_user_link() 函数用于获取编辑用户页面的 URL。它接受一个可选的用户 ID 参数,并基于当前用户的权限和用户数据生成链接,支持通过 Hook 进行过滤。

关键要点

  • 函数返回编辑用户页面的 URL 字符串,若无权限或用户不存在则返回空字符串
  • 参数 $user_id 可选,默认为 null,未提供时使用当前用户 ID
  • 内部检查 current_user_can('edit_user', $user_id) 权限,确保用户有编辑权限
  • 使用 get_edit_profile_url() 或 self_admin_url() 构建链接,取决于是否为当前用户
  • 通过 apply_filters('get_edit_user_link', $link, $user_id) Hook 允许自定义过滤

代码示例

// 获取当前用户的编辑链接
$link = get_edit_user_link();

// 获取指定用户 ID 的编辑链接
$link = get_edit_user_link( 123 );

注意事项

  • 确保在调用前用户已登录或有相应权限,否则可能返回空字符串
  • 链接生成依赖于 WordPress 管理界面路径,适用于后台环境
  • 相关函数包括 get_edit_profile_url()、self_admin_url() 等,用于辅助构建 URL

📄 原文内容

Retrieves the edit user link.

Parameters

$user_idintoptional
User ID. Defaults to the current user.

Default:null

Return

string URL to edit user page or empty string.

Source

function get_edit_user_link( $user_id = null ) {
	if ( ! $user_id ) {
		$user_id = get_current_user_id();
	}

	if ( empty( $user_id ) || ! current_user_can( 'edit_user', $user_id ) ) {
		return '';
	}

	$user = get_userdata( $user_id );

	if ( ! $user ) {
		return '';
	}

	if ( get_current_user_id() === $user->ID ) {
		$link = get_edit_profile_url( $user->ID );
	} else {
		$link = add_query_arg( 'user_id', $user->ID, self_admin_url( 'user-edit.php' ) );
	}

	/**
	 * Filters the user edit link.
	 *
	 * @since 3.5.0
	 *
	 * @param string $link    The edit link.
	 * @param int    $user_id User ID.
	 */
	return apply_filters( 'get_edit_user_link', $link, $user->ID );
}

Hooks

apply_filters( ‘get_edit_user_link’, string $link, int $user_id )

Filters the user edit link.

Changelog

Version Description
3.5.0 Introduced.

User Contributed Notes

  1. Skip to note 4 content

    Each editor’s link

    Get a link for each editor in the database

    $user = new WP_User_Query( array(
      'role' => 'editor'
    ));
    
    $editor = $users->get_results();
    
    foreach( $editor as $e ){
      $userdata = get_userdata( $e->ID );
      echo '<a href="'. get_edit_user_link( $e->ID ) .'">'. esc_attr( $userdata->user_nicename ) .'</a>';
    }