<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[54259] trunk/src/wp-includes: Bootstrap/Load: Introduce `is_*_admin_screen()` aliases for `is_*_admin()` function family.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/54259">54259</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/54259","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>SergeyBiryukov</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2022-09-20 15:18:34 +0000 (Tue, 20 Sep 2022)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Bootstrap/Load: Introduce `is_*_admin_screen()` aliases for `is_*_admin()` function family.

Following the introduction of `is_login_screen()` in <a href="https://core.trac.wordpress.org/changeset/53884">[53884]</a>, it is time to reconsider the `is_*_admin()` functions:

* `is_admin()`: Determines whether the current request is for an administrative interface page.
* `is_blog_admin()`: Whether the current request is for a site's administrative interface, e.g. `/wp-admin/`.
* `is_network_admin()`: Whether the current request is for the network administrative interface, e.g. `/wp-admin/network/`.
* `is_user_admin()`: Whether the current request is for a user admin screen, e.g. `/wp-admin/user/`.

For someone new to WordPress, these names can be quite confusing, especially the last one. When using these functions, one always needs to remember that they don't actually check if the current user is a site administrator.

To complicate things further, there is one more similarly named function that does exactly the latter:
* `is_super_admin()`: Determines whether user is a site admin.

With the above in mind, this commit introduces aliases that better match the functionality and allow for more descriptive code:

* `is_admin()` {U+2192} `is_admin_screen()`
* `is_blog_admin()` {U+2192} `is_site_admin_screen()`
* `is_network_admin()` {U+2192} `is_network_admin_screen()`
* `is_user_admin()` {U+2192} `is_user_admin_screen()`

Additionally, `is_super_admin_user()` is introduced as an alias for `is_super_admin()`:
* `is_super_admin()` {U+2192} `is_super_admin_user()`

Plugins and themes are encouraged to start using the newer function names to make code self-descriptive and bring more clarity. The older names are not deprecated at this time, though it may be up for discussion in the future.

Follow-up to <a href="https://core.trac.wordpress.org/changeset/2481">[2481]</a>, <a href="https://core.trac.wordpress.org/changeset/6412">[6412]</a>, <a href="https://core.trac.wordpress.org/changeset/12393">[12393]</a>, <a href="https://core.trac.wordpress.org/changeset/12732">[12732]</a>, <a href="https://core.trac.wordpress.org/changeset/15558">[15558]</a>, <a href="https://core.trac.wordpress.org/changeset/15481">[15481]</a>, <a href="https://core.trac.wordpress.org/changeset/15746">[15746]</a>, <a href="https://core.trac.wordpress.org/changeset/53884">[53884]</a>.

Props jrf, tobifjellner, SergeyBiryukov.
See <a href="https://core.trac.wordpress.org/ticket/56400">#56400</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcwpincludescapabilitiesphp">trunk/src/wp-includes/capabilities.php</a></li>
<li><a href="#trunksrcwpincludesloadphp">trunk/src/wp-includes/load.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcwpincludescapabilitiesphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/capabilities.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/capabilities.php    2022-09-20 15:15:55 UTC (rev 54258)
+++ trunk/src/wp-includes/capabilities.php      2022-09-20 15:18:34 UTC (rev 54259)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1087,6 +1087,22 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px">  * Determines whether user is a site admin.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @since 6.1.0
+ *
+ * This function is an alias for is_super_admin().
+ *
+ * @see is_super_admin()
+ *
+ * @param int|false $user_id Optional. The ID of a user. Defaults to false, to check the current user.
+ * @return bool Whether the user is a site admin.
+ */
+function is_super_admin_user( $user_id = false ) {
+       return is_super_admin( $user_id );
+}
+
+/**
+ * Determines whether user is a site admin.
+ *
</ins><span class="cx" style="display: block; padding: 0 10px">  * @since 3.0.0
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @param int|false $user_id Optional. The ID of a user. Defaults to false, to check the current user.
</span></span></pre></div>
<a id="trunksrcwpincludesloadphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/load.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/load.php    2022-09-20 15:15:55 UTC (rev 54258)
+++ trunk/src/wp-includes/load.php      2022-09-20 15:18:34 UTC (rev 54259)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1157,6 +1157,21 @@
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px">  * Determines whether the current request is for an administrative interface page.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * This function is an alias for is_admin().
+ *
+ * @since 6.1.0
+ *
+ * @see is_admin()
+ *
+ * @return bool True if inside WordPress administration interface, false otherwise.
+ */
+function is_admin_screen() {
+       return is_admin();
+}
+
+/**
+ * Determines whether the current request is for an administrative interface page.
+ *
</ins><span class="cx" style="display: block; padding: 0 10px">  * Does not check if the user is an administrator; use current_user_can()
</span><span class="cx" style="display: block; padding: 0 10px">  * for checking roles and capabilities.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1181,8 +1196,23 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Whether the current request is for a site's administrative interface.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Determines whether the current request is for a site's administrative interface.
</ins><span class="cx" style="display: block; padding: 0 10px">  *
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * This function is an alias for is_blog_admin().
+ *
+ * @since 6.1.0
+ *
+ * @see is_blog_admin()
+ *
+ * @return bool True if inside WordPress site administration pages.
+ */
+function is_site_admin_screen() {
+       return is_blog_admin();
+}
+
+/**
+ * Determines whether the current request is for a site's administrative interface.
+ *
</ins><span class="cx" style="display: block; padding: 0 10px">  * e.g. `/wp-admin/`
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * Does not check if the user is an administrator; use current_user_can()
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1192,7 +1222,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * @global WP_Screen $current_screen WordPress current screen object.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * @return bool True if inside WordPress blog administration pages.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * @return bool True if inside WordPress site administration pages.
</ins><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> function is_blog_admin() {
</span><span class="cx" style="display: block; padding: 0 10px">        if ( isset( $GLOBALS['current_screen'] ) ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1205,10 +1235,27 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Whether the current request is for the network administrative interface.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Determines whether the current request is for the network administrative interface.
</ins><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * e.g. `/wp-admin/network/`
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * This function is an alias for is_network_admin().
+ *
+ * @since 6.1.0
+ *
+ * @see is_network_admin()
+ *
+ * @return bool True if inside WordPress network administration pages.
+ */
+function is_network_admin_screen() {
+       return is_network_admin();
+}
+
+/**
+ * Determines whether the current request is for the network administrative interface.
+ *
+ * e.g. `/wp-admin/network/`
+ *
</ins><span class="cx" style="display: block; padding: 0 10px">  * Does not check if the user is an administrator; use current_user_can()
</span><span class="cx" style="display: block; padding: 0 10px">  * for checking roles and capabilities.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1232,10 +1279,27 @@
</span><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- * Whether the current request is for a user admin screen.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * Determines whether the current request is for a user admin screen.
</ins><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="cx" style="display: block; padding: 0 10px">  * e.g. `/wp-admin/user/`
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ * This function is an alias for is_user_admin().
+ *
+ * @since 6.1.0
+ *
+ * @see is_user_admin()
+ *
+ * @return bool True if inside WordPress user administration pages.
+ */
+function is_user_admin_screen() {
+       return is_user_admin();
+}
+
+/**
+ * Determines whether the current request is for a user admin screen.
+ *
+ * e.g. `/wp-admin/user/`
+ *
</ins><span class="cx" style="display: block; padding: 0 10px">  * Does not check if the user is an administrator; use current_user_can()
</span><span class="cx" style="display: block; padding: 0 10px">  * for checking roles and capabilities.
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span></span></pre>
</div>
</div>

</body>
</html>