检索用户仪表板的URL。

原型

get_dashboard_url( int $user_id, string $path = '', string $scheme = 'admin' )

描述

如果用户不属于任何站点,则使用全局用户仪表板。如果用户属于当前站点,则返回当前站点的仪表板。如果用户无法编辑当前站点,则返回用户主站点的仪表板。

参数

$user_id (int) (Optional)  用户身份。默认为当前用户。

$path (string) (Optional) 相对于仪表板的路径。仅使用站点和用户管理员都知道的路径。

$scheme (string) (Optional) 使用的方案。默认为’admin’,它服从force_ssl_admin()和is_ssl()。可以传递’http’或’https’来强制执行这些方案。

返回值

(string)  附加了可选路径的仪表板URL链接。

源文件

路径:wp-includes/link-template.php

<?php
...
function get_dashboard_url( $user_id = 0, $path = '', $scheme = 'admin' ) {
	$user_id = $user_id ? (int) $user_id : get_current_user_id();
	$blogs = get_blogs_of_user( $user_id );
	if ( is_multisite() && ! user_can( $user_id, 'manage_network' ) && empty($blogs) ) {
		$url = user_admin_url( $path, $scheme );
	} elseif ( ! is_multisite() ) {
		$url = admin_url( $path, $scheme );
	} else {
		$current_blog = get_current_blog_id();
		if ( $current_blog  && ( user_can( $user_id, 'manage_network' ) || in_array( $current_blog, array_keys( $blogs ) ) ) ) {
			$url = admin_url( $path, $scheme );
		} else {
			$active = get_active_blog_for_user( $user_id );
			if ( $active )
				$url = get_admin_url( $active->blog_id, $path, $scheme );
			else
				$url = user_admin_url( $path, $scheme );
		}
	}
	/**
	 * Filters the dashboard URL for a user.
	 *
	 * @since 3.1.0
	 *
	 * @param string $url     The complete URL including scheme and path.
	 * @param int    $user_id The user ID.
	 * @param string $path    Path relative to the URL. Blank string if no path is specified.
	 * @param string $scheme  Scheme to give the URL context. Accepts 'http', 'https', 'login',
	 *                        'login_post', 'admin', 'relative' or null.
	 */
	return apply_filters( 'user_dashboard_url', $url, $user_id, $path, $scheme);
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/get_dashboard_url/