GRAYBYTE WORDPRESS FILE MANAGER5633

Server IP : 149.255.58.128 / Your IP : 216.73.216.186
System : Linux cloud516.thundercloud.uk 5.14.0-427.26.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 17 15:51:13 EDT 2024 x86_64
PHP Version : 8.2.28
Disable Function : allow_url_include, apache_child_terminate, apache_setenv, exec, passthru, pcntl_exec, posix_kill, posix_mkfifo, posix_getpwuid, posix_setpgid, posix_setsid, posix_setuid, posix_setgid, posix_seteuid, posix_setegid, posix_uname, proc_close, proc_get_status, proc_open, proc_terminate, shell_exec, show_source, system
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /home/wheelch2/public_html/wp-includes/
Upload Files :
Current_dir [ Writeable ] Document_root [ Writeable ]

Command :


Current File : /home/wheelch2/public_html/wp-includes//capabilities.php
<?php
/**
 * Core User Role & Capabilities API
 *
 * @package WordPress
 * @subpackage Users
 */

/**
 * Maps a capability to the primitive capabilities required of the given user to
 * satisfy the capability being checked.
 *
 * This function also accepts an ID of an object to map against if the capability is a meta capability. Meta
 * capabilities such as `edit_post` and `edit_user` are capabilities used by this function to map to primitive
 * capabilities that a user or role requires, such as `edit_posts` and `edit_others_posts`.
 *
 * Example usage:
 *
 *     map_meta_cap( 'edit_posts', $user->ID );
 *     map_meta_cap( 'edit_post', $user->ID, $post->ID );
 *     map_meta_cap( 'edit_post_meta', $user->ID, $post->ID, $meta_key );
 *
 * This function does not check whether the user has the required capabilities,
 * it just returns what the required capabilities are.
 *
 * @since 2.0.0
 * @since 4.9.6 Added the `export_others_personal_data`, `erase_others_personal_data`,
 *              and `manage_privacy_options` capabilities.
 * @since 5.1.0 Added the `update_php` capability.
 * @since 5.2.0 Added the `resume_plugin` and `resume_theme` capabilities.
 * @since 5.3.0 Formalized the existing and already documented `...$args` parameter
 *              by adding it to the function signature.
 * @since 5.7.0 Added the `create_app_password`, `list_app_passwords`, `read_app_password`,
 *              `edit_app_password`, `delete_app_passwords`, `delete_app_password`,
 *              and `update_https` capabilities.
 *
 * @global array $post_type_meta_caps Used to get post type meta capabilities.
 *
 * @param string $cap     Capability being checked.
 * @param int    $user_id User ID.
 * @param mixed  ...$args Optional further parameters, typically starting with an object ID.
 * @return string[] Primitive capabilities required of the user.
 */
function map_meta_cap( $cap, $user_id, ...$args ) {
	$caps = array();

	switch ( $cap ) {
		case 'remove_user':
			// In multisite the user must be a super admin to remove themselves.
			if ( isset( $args[0] ) && $user_id == $args[0] && ! is_super_admin( $user_id ) ) {
				$caps[] = 'do_not_allow';
			} else {
				$caps[] = 'remove_users';
			}
			break;
		case 'promote_user':
		case 'add_users':
			$caps[] = 'promote_users';
			break;
		case 'edit_user':
		case 'edit_users':
			// Allow user to edit themselves.
			if ( 'edit_user' === $cap && isset( $args[0] ) && $user_id == $args[0] ) {
				break;
			}

			// In multisite the user must have manage_network_users caps. If editing a super admin, the user must be a super admin.
			if ( is_multisite() && ( ( ! is_super_admin( $user_id ) && 'edit_user' === $cap && is_super_admin( $args[0] ) ) || ! user_can( $user_id, 'manage_network_users' ) ) ) {
				$caps[] = 'do_not_allow';
			} else {
				$caps[] = 'edit_users'; // edit_user maps to edit_users.
			}
			break;
		case 'delete_post':
		case 'delete_page':
			if ( ! isset( $args[0] ) ) {
				if ( 'delete_post' === $cap ) {
					/* translators: %s: Capability name. */
					$message = __( 'When checking for the %s capability, you must always check it against a specific post.' );
				} else {
					/* translators: %s: Capability name. */
					$message = __( 'When checking for the %s capability, you must always check it against a specific page.' );
				}

				_doing_it_wrong(
					__FUNCTION__,
					sprintf( $message, '<code>' . $cap . '</code>' ),
					'6.1.0'
				);

				$caps[] = 'do_not_allow';
				break;
			}

			$post = get_post( $args[0] );
			if ( ! $post ) {
				$caps[] = 'do_not_allow';
				break;
			}

			if ( 'revision' === $post->post_type ) {
				$caps[] = 'do_not_allow';
				break;
			}

			if ( ( get_option( 'page_for_posts' ) == $post->ID ) || ( get_option( 'page_on_front' ) == $post->ID ) ) {
				$caps[] = 'manage_options';
				break;
			}

			$post_type = get_post_type_object( $post->post_type );
			if ( ! $post_type ) {
				/* translators: 1: Post type, 2: Capability name. */
				$message = __( 'The post type %1$s is not registered, so it may not be reliable to check the capability %2$s against a post of that type.' );

				_doing_it_wrong(
					__FUNCTION__,
					sprintf(
						$message,
						'<code>' . $post->post_type . '</code>',
						'<code>' . $cap . '</code>'
					),
					'4.4.0'
				);

				$caps[] = 'edit_others_posts';
				break;
			}

			if ( ! $post_type->map_meta_cap ) {
				$caps[] = $post_type->cap->$cap;
				// Prior to 3.1 we would re-call map_meta_cap here.
				if ( 'delete_post' === $cap ) {
					$cap = $post_type->cap->$cap;
				}
				break;
			}

			// If the post author is set and the user is the author...
			if ( $post->post_author && $user_id == $post->post_author ) {
				// If the post is published or scheduled...
				if ( in_array( $post->post_status, array( 'publish', 'future' ), true ) ) {
					$caps[] = $post_type->cap->delete_published_posts;
				} elseif ( 'trash' === $post->post_status ) {
					$status = get_post_meta( $post->ID, '_wp_trash_meta_status', true );
					if ( in_array( $status, array( 'publish', 'future' ), true ) ) {
						$caps[] = $post_type->cap->delete_published_posts;
					} else {
						$caps[] = $post_type->cap->delete_posts;
					}
				} else {
					// If the post is draft...
					$caps[] = $post_type->cap->delete_posts;
				}
			} else {
				// The user is trying to edit someone else's post.
				$caps[] = $post_type->cap->delete_others_posts;
				// The post is published or scheduled, extra cap required.
				if ( in_array( $post->post_status, array( 'publish', 'future' ), true ) ) {
					$caps[] = $post_type->cap->delete_published_posts;
				} elseif ( 'private' === $post->post_status ) {
					$caps[] = $post_type->cap->delete_private_posts;
				}
			}

			/*
			 * Setting the privacy policy page requires `manage_privacy_options`,
			 * so deleting it should require that too.
			 */
			if ( (int) get_option( 'wp_page_for_privacy_policy' ) === $post->ID ) {
				$caps = array_merge( $caps, map_meta_cap( 'manage_privacy_options', $user_id ) );
			}

			break;
		/*
		 * edit_post breaks down to edit_posts, edit_published_posts, or
		 * edit_others_posts.
		 */
		case 'edit_post':
		case 'edit_page':
			if ( ! isset( $args[0] ) ) {
				if ( 'edit_post' === $cap ) {
					/* translators: %s: Capability name. */
					$message = __( 'When checking for the %s capability, you must always check it against a specific post.' );
				} else {
					/* translators: %s: Capability name. */
					$message = __( 'When checking for the %s capability, you must always check it against a specific page.' );
				}

				_doing_it_wrong(
					__FUNCTION__,
					sprintf( $message, '<code>' . $cap . '</code>' ),
					'6.1.0'
				);

				$caps[] = 'do_not_allow';
				break;
			}

			$post = get_post( $args[0] );
			if ( ! $post ) {
				$caps[] = 'do_not_allow';
				break;
			}

			if ( 'revision' === $post->post_type ) {
				$post = get_post( $post->post_parent );
				if ( ! $post ) {
					$caps[] = 'do_not_allow';
					break;
				}
			}

			$post_type = get_post_type_object( $post->post_type );
			if ( ! $post_type ) {
				/* translators: 1: Post type, 2: Capability name. */
				$message = __( 'The post type %1$s is not registered, so it may not be reliable to check the capability %2$s against a post of that type.' );

				_doing_it_wrong(
					__FUNCTION__,
					sprintf(
						$message,
						'<code>' . $post->post_type . '</code>',
						'<code>' . $cap . '</code>'
					),
					'4.4.0'
				);

				$caps[] = 'edit_others_posts';
				break;
			}

			if ( ! $post_type->map_meta_cap ) {
				$caps[] = $post_type->cap->$cap;
				// Prior to 3.1 we would re-call map_meta_cap here.
				if ( 'edit_post' === $cap ) {
					$cap = $post_type->cap->$cap;
				}
				break;
			}

			// If the post author is set and the user is the author...
			if ( $post->post_author && $user_id == $post->post_author ) {
				// If the post is published or scheduled...
				if ( in_array( $post->post_status, array( 'publish', 'future' ), true ) ) {
					$caps[] = $post_type->cap->edit_published_posts;
				} elseif ( 'trash' === $post->post_status ) {
					$status = get_post_meta( $post->ID, '_wp_trash_meta_status', true );
					if ( in_array( $status, array( 'publish', 'future' ), true ) ) {
						$caps[] = $post_type->cap->edit_published_posts;
					} else {
						$caps[] = $post_type->cap->edit_posts;
					}
				} else {
					// If the post is draft...
					$caps[] = $post_type->cap->edit_posts;
				}
			} else {
				// The user is trying to edit someone else's post.
				$caps[] = $post_type->cap->edit_others_posts;
				// The post is published or scheduled, extra cap required.
				if ( in_array( $post->post_status, array( 'publish', 'future' ), true ) ) {
					$caps[] = $post_type->cap->edit_published_posts;
				} elseif ( 'private' === $post->post_status ) {
					$caps[] = $post_type->cap->edit_private_posts;
				}
			}

			/*
			 * Setting the privacy policy page requires `manage_privacy_options`,
			 * so editing it should require that too.
			 */
			if ( (int) get_option( 'wp_page_for_privacy_policy' ) === $post->ID ) {
				$caps = array_merge( $caps, map_meta_cap( 'manage_privacy_options', $user_id ) );
			}

			break;
		case 'read_post':
		case 'read_page':
			if ( ! isset( $args[0] ) ) {
				if ( 'read_post' === $cap ) {
					/* translators: %s: Capability name. */
					$message = __( 'When checking for the %s capability, you must always check it against a specific post.' );
				} else {
					/* translators: %s: Capability name. */
					$message = __( 'When checking for the %s capability, you must always check it against a specific page.' );
				}

				_doing_it_wrong(
					__FUNCTION__,
					sprintf( $message, '<code>' . $cap . '</code>' ),
					'6.1.0'
				);

				$caps[] = 'do_not_allow';
				break;
			}

			$post = get_post( $args[0] );
			if ( ! $post ) {
				$caps[] = 'do_not_allow';
				break;
			}

			if ( 'revision' === $post->post_type ) {
				$post = get_post( $post->post_parent );
				if ( ! $post ) {
					$caps[] = 'do_not_allow';
					break;
				}
			}

			$post_type = get_post_type_object( $post->post_type );
			if ( ! $post_type ) {
				/* translators: 1: Post type, 2: Capability name. */
				$message = __( 'The post type %1$s is not registered, so it may not be reliable to check the capability %2$s against a post of that type.' );

				_doing_it_wrong(
					__FUNCTION__,
					sprintf(
						$message,
						'<code>' . $post->post_type . '</code>',
						'<code>' . $cap . '</code>'
					),
					'4.4.0'
				);

				$caps[] = 'edit_others_posts';
				break;
			}

			if ( ! $post_type->map_meta_cap ) {
				$caps[] = $post_type->cap->$cap;
				// Prior to 3.1 we would re-call map_meta_cap here.
				if ( 'read_post' === $cap ) {
					$cap = $post_type->cap->$cap;
				}
				break;
			}

			$status_obj = get_post_status_object( get_post_status( $post ) );
			if ( ! $status_obj ) {
				/* translators: 1: Post status, 2: Capability name. */
				$message = __( 'The post status %1$s is not registered, so it may not be reliable to check the capability %2$s against a post with that status.' );

				_doing_it_wrong(
					__FUNCTION__,
					sprintf(
						$message,
						'<code>' . get_post_status( $post ) . '</code>',
						'<code>' . $cap . '</code>'
					),
					'5.4.0'
				);

				$caps[] = 'edit_others_posts';
				break;
			}

			if ( $status_obj->public ) {
				$caps[] = $post_type->cap->read;
				break;
			}

			if ( $post->post_author && $user_id == $post->post_author ) {
				$caps[] = $post_type->cap->read;
			} elseif ( $status_obj->private ) {
				$caps[] = $post_type->cap->read_private_posts;
			} else {
				$caps = map_meta_cap( 'edit_post', $user_id, $post->ID );
			}
			break;
		case 'publish_post':
			if ( ! isset( $args[0] ) ) {
				/* translators: %s: Capability name. */
				$message = __( 'When checking for the %s capability, you must always check it against a specific post.' );

				_doing_it_wrong(
					__FUNCTION__,
					sprintf( $message, '<code>' . $cap . '</code>' ),
					'6.1.0'
				);

				$caps[] = 'do_not_allow';
				break;
			}

			$post = get_post( $args[0] );
			if ( ! $post ) {
				$caps[] = 'do_not_allow';
				break;
			}

			$post_type = get_post_type_object( $post->post_type );
			if ( ! $post_type ) {
				/* translators: 1: Post type, 2: Capability name. */
				$message = __( 'The post type %1$s is not registered, so it may not be reliable to check the capability %2$s against a post of that type.' );

				_doing_it_wrong(
					__FUNCTION__,
					sprintf(
						$message,
						'<code>' . $post->post_type . '</code>',
						'<code>' . $cap . '</code>'
					),
					'4.4.0'
				);

				$caps[] = 'edit_others_posts';
				break;
			}

			$caps[] = $post_type->cap->publish_posts;
			break;
		case 'edit_post_meta':
		case 'delete_post_meta':
		case 'add_post_meta':
		case 'edit_comment_meta':
		case 'delete_comment_meta':
		case 'add_comment_meta':
		case 'edit_term_meta':
		case 'delete_term_meta':
		case 'add_term_meta':
		case 'edit_user_meta':
		case 'delete_user_meta':
		case 'add_user_meta':
			$object_type = explode( '_', $cap )[1];

			if ( ! isset( $args[0] ) ) {
				if ( 'post' === $object_type ) {
					/* translators: %s: Capability name. */
					$message = __( 'When checking for the %s capability, you must always check it against a specific post.' );
				} elseif ( 'comment' === $object_type ) {
					/* translators: %s: Capability name. */
					$message = __( 'When checking for the %s capability, you must always check it against a specific comment.' );
				} elseif ( 'term' === $object_type ) {
					/* translators: %s: Capability name. */
					$message = __( 'When checking for the %s capability, you must always check it against a specific term.' );
				} else {
					/* translators: %s: Capability name. */
					$message = __( 'When checking for the %s capability, you must always check it against a specific user.' );
				}

				_doing_it_wrong(
					__FUNCTION__,
					sprintf( $message, '<code>' . $cap . '</code>' ),
					'6.1.0'
				);

				$caps[] = 'do_not_allow';
				break;
			}

			$object_id = (int) $args[0];

			$object_subtype = get_object_subtype( $object_type, $object_id );

			if ( empty( $object_subtype ) ) {
				$caps[] = 'do_not_allow';
				break;
			}

			$caps = map_meta_cap( "edit_{$object_type}", $user_id, $object_id );

			$meta_key = isset( $args[1] ) ? $args[1] : false;

			if ( $meta_key ) {
				$allowed = ! is_protected_meta( $meta_key, $object_type );

				if ( ! empty( $object_subtype ) && has_filter( "auth_{$object_type}_meta_{$meta_key}_for_{$object_subtype}" ) ) {

					/**
					 * Filters whether the user is allowed to edit a specific meta key of a specific object type and subtype.
					 *
					 * The dynamic portions of the hook name, `$object_type`, `$meta_key`,
					 * and `$object_subtype`, refer to the metadata object type (comment, post, term or user),
					 * the meta key value, and the object subtype respectively.
					 *
					 * @since 4.9.8
					 *
					 * @param bool     $allowed   Whether the user can add the object meta. Default false.
					 * @param string   $meta_key  The meta key.
					 * @param int      $object_id Object ID.
					 * @param int      $user_id   User ID.
					 * @param string   $cap       Capability name.
					 * @param string[] $caps      Array of the user's capabilities.
					 */
					$allowed = apply_filters( "auth_{$object_type}_meta_{$meta_key}_for_{$object_subtype}", $allowed, $meta_key, $object_id, $user_id, $cap, $caps );
				} else {

					/**
					 * Filters whether the user is allowed to edit a specific meta key of a specific object type.
					 *
					 * Return true to have the mapped meta caps from `edit_{$object_type}` apply.
					 *
					 * The dynamic portion of the hook name, `$object_type` refers to the object type being filtered.
					 * The dynamic portion of the hook name, `$meta_key`, refers to the meta key passed to map_meta_cap().
					 *
					 * @since 3.3.0 As `auth_post_meta_{$meta_key}`.
					 * @since 4.6.0
					 *
					 * @param bool     $allowed   Whether the user can add the object meta. Default false.
					 * @param string   $meta_key  The meta key.
					 * @param int      $object_id Object ID.
					 * @param int      $user_id   User ID.
					 * @param string   $cap       Capability name.
					 * @param string[] $caps      Array of the user's capabilities.
					 */
					$allowed = apply_filters( "auth_{$object_type}_meta_{$meta_key}", $allowed, $meta_key, $object_id, $user_id, $cap, $caps );
				}

				if ( ! empty( $object_subtype ) ) {

					/**
					 * Filters whether the user is allowed to edit meta for specific object types/subtypes.
					 *
					 * Return true to have the mapped meta caps from `edit_{$object_type}` apply.
					 *
					 * The dynamic portion of the hook name, `$object_type` refers to the object type being filtered.
					 * The dynamic portion of the hook name, `$object_subtype` refers to the object subtype being filtered.
					 * The dynamic portion of the hook name, `$meta_key`, refers to the meta key passed to map_meta_cap().
					 *
					 * @since 4.6.0 As `auth_post_{$post_type}_meta_{$meta_key}`.
					 * @since 4.7.0 Renamed from `auth_post_{$post_type}_meta_{$meta_key}` to
					 *              `auth_{$object_type}_{$object_subtype}_meta_{$meta_key}`.
					 * @deprecated 4.9.8 Use {@see 'auth_{$object_type}_meta_{$meta_key}_for_{$object_subtype}'} instead.
					 *
					 * @param bool     $allowed   Whether the user can add the object meta. Default false.
					 * @param string   $meta_key  The meta key.
					 * @param int      $object_id Object ID.
					 * @param int      $user_id   User ID.
					 * @param string   $cap       Capability name.
					 * @param string[] $caps      Array of the user's capabilities.
					 */
					$allowed = apply_filters_deprecated(
						"auth_{$object_type}_{$object_subtype}_meta_{$meta_key}",
						array( $allowed, $meta_key, $object_id, $user_id, $cap, $caps ),
						'4.9.8',
						"auth_{$object_type}_meta_{$meta_key}_for_{$object_subtype}"
					);
				}

				if ( ! $allowed ) {
					$caps[] = $cap;
				}
			}
			break;
		case 'edit_comment':
			if ( ! isset( $args[0] ) ) {
				/* translators: %s: Capability name. */
				$message = __( 'When checking for the %s capability, you must always check it against a specific comment.' );

				_doing_it_wrong(
					__FUNCTION__,
					sprintf( $message, '<code>' . $cap . '</code>' ),
					'6.1.0'
				);

				$caps[] = 'do_not_allow';
				break;
			}

			$comment = get_comment( $args[0] );
			if ( ! $comment ) {
				$caps[] = 'do_not_allow';
				break;
			}

			$post = get_post( $comment->comment_post_ID );

			/*
			 * If the post doesn't exist, we have an orphaned comment.
			 * Fall back to the edit_posts capability, instead.
			 */
			if ( $post ) {
				$caps = map_meta_cap( 'edit_post', $user_id, $post->ID );
			} else {
				$caps = map_meta_cap( 'edit_posts', $user_id );
			}
			break;
		case 'unfiltered_upload':
			if ( defined( 'ALLOW_UNFILTERED_UPLOADS' ) && ALLOW_UNFILTERED_UPLOADS && ( ! is_multisite() || is_super_admin( $user_id ) ) ) {
				$caps[] = $cap;
			} else {
				$caps[] = 'do_not_allow';
			}
			break;
		case 'edit_css':
		case 'unfiltered_html':
			// Disallow unfiltered_html for all users, even admins and super admins.
			if ( defined( 'DISALLOW_UNFILTERED_HTML' ) && DISALLOW_UNFILTERED_HTML ) {
				$caps[] = 'do_not_allow';
			} elseif ( is_multisite() && ! is_super_admin( $user_id ) ) {
				$caps[] = 'do_not_allow';
			} else {
				$caps[] = 'unfiltered_html';
			}
			break;
		case 'edit_files':
		case 'edit_plugins':
		case 'edit_themes':
			// Disallow the file editors.
			if ( defined( 'DISALLOW_FILE_EDIT' ) && DISALLOW_FILE_EDIT ) {
				$caps[] = 'do_not_allow';
			} elseif ( ! wp_is_file_mod_allowed( 'capability_edit_themes' ) ) {
				$caps[] = 'do_not_allow';
			} elseif ( is_multisite() && ! is_super_admin( $user_id ) ) {
				$caps[] = 'do_not_allow';
			} else {
				$caps[] = $cap;
			}
			break;
		case 'update_plugins':
		case 'delete_plugins':
		case 'install_plugins':
		case 'upload_plugins':
		case 'update_themes':
		case 'delete_themes':
		case 'install_themes':
		case 'upload_themes':
		case 'update_core':
			/*
			 * Disallow anything that creates, deletes, or updates core, plugin, or theme files.
			 * Files in uploads are excepted.
			 */
			if ( ! wp_is_file_mod_allowed( 'capability_update_core' ) ) {
				$caps[] = 'do_not_allow';
			} elseif ( is_multisite() && ! is_super_admin( $user_id ) ) {
				$caps[] = 'do_not_allow';
			} elseif ( 'upload_themes' === $cap ) {
				$caps[] = 'install_themes';
			} elseif ( 'upload_plugins' === $cap ) {
				$caps[] = 'install_plugins';
			} else {
				$caps[] = $cap;
			}
			break;
		case 'install_languages':
		case 'update_languages':
			if ( ! wp_is_file_mod_allowed( 'can_install_language_pack' ) ) {
				$caps[] = 'do_not_allow';
			} elseif ( is_multisite() && ! is_super_admin( $user_id ) ) {
				$caps[] = 'do_not_allow';
			} else {
				$caps[] = 'install_languages';
			}
			break;
		case 'activate_plugins':
		case 'deactivate_plugins':
		case 'activate_plugin':
		case 'deactivate_plugin':
			$caps[] = 'activate_plugins';
			if ( is_multisite() ) {
				// update_, install_, and delete_ are handled above with is_super_admin().
				$menu_perms = get_site_option( 'menu_items', array() );
				if ( empty( $menu_perms['plugins'] ) ) {
					$caps[] = 'manage_network_plugins';
				}
			}
			break;
		case 'resume_plugin':
			$caps[] = 'resume_plugins';
			break;
		case 'resume_theme':
			$caps[] = 'resume_themes';
			break;
		case 'delete_user':
		case 'delete_users':
			// If multisite only super admins can delete users.
			if ( is_multisite() && ! is_super_admin( $user_id ) ) {
				$caps[] = 'do_not_allow';
			} else {
				$caps[] = 'delete_users'; // delete_user maps to delete_users.
			}
			break;
		case 'create_users':
			if ( ! is_multisite() ) {
				$caps[] = $cap;
			} elseif ( is_super_admin( $user_id ) || get_site_option( 'add_new_users' ) ) {
				$caps[] = $cap;
			} else {
				$caps[] = 'do_not_allow';
			}
			break;
		case 'manage_links':
			if ( get_option( 'link_manager_enabled' ) ) {
				$caps[] = $cap;
			} else {
				$caps[] = 'do_not_allow';
			}
			break;
		case 'customize':
			$caps[] = 'edit_theme_options';
			break;
		case 'delete_site':
			if ( is_multisite() ) {
				$caps[] = 'manage_options';
			} else {
				$caps[] = 'do_not_allow';
			}
			break;
		case 'edit_term':
		case 'delete_term':
		case 'assign_term':
			if ( ! isset( $args[0] ) ) {
				/* translators: %s: Capability name. */
				$message = __( 'When checking for the %s capability, you must always check it against a specific term.' );

				_doing_it_wrong(
					__FUNCTION__,
					sprintf( $message, '<code>' . $cap . '</code>' ),
					'6.1.0'
				);

				$caps[] = 'do_not_allow';
				break;
			}

			$term_id = (int) $args[0];
			$term    = get_term( $term_id );
			if ( ! $term || is_wp_error( $term ) ) {
				$caps[] = 'do_not_allow';
				break;
			}

			$tax = get_taxonomy( $term->taxonomy );
			if ( ! $tax ) {
				$caps[] = 'do_not_allow';
				break;
			}

			if ( 'delete_term' === $cap
				&& ( get_option( 'default_' . $term->taxonomy ) == $term->term_id
					|| get_option( 'default_term_' . $term->taxonomy ) == $term->term_id )
			) {
				$caps[] = 'do_not_allow';
				break;
			}

			$taxo_cap = $cap . 's';

			$caps = map_meta_cap( $tax->cap->$taxo_cap, $user_id, $term_id );

			break;
		case 'manage_post_tags':
		case 'edit_categories':
		case 'edit_post_tags':
		case 'delete_categories':
		case 'delete_post_tags':
			$caps[] = 'manage_categories';
			break;
		case 'assign_categories':
		case 'assign_post_tags':
			$caps[] = 'edit_posts';
			break;
		case 'create_sites':
		case 'delete_sites':
		case 'manage_network':
		case 'manage_sites':
		case 'manage_network_users':
		case 'manage_network_plugins':
		case 'manage_network_themes':
		case 'manage_network_options':
		case 'upgrade_network':
			$caps[] = $cap;
			break;
		case 'setup_network':
			if ( is_multisite() ) {
				$caps[] = 'manage_network_options';
			} else {
				$caps[] = 'manage_options';
			}
			break;
		case 'update_php':
			if ( is_multisite() && ! is_super_admin( $user_id ) ) {
				$caps[] = 'do_not_allow';
			} else {
				$caps[] = 'update_core';
			}
			break;
		case 'update_https':
			if ( is_multisite() && ! is_super_admin( $user_id ) ) {
				$caps[] = 'do_not_allow';
			} else {
				$caps[] = 'manage_options';
				$caps[] = 'update_core';
			}
			break;
		case 'export_others_personal_data':
		case 'erase_others_personal_data':
		case 'manage_privacy_options':
			$caps[] = is_multisite() ? 'manage_network' : 'manage_options';
			break;
		case 'create_app_password':
		case 'list_app_passwords':
		case 'read_app_password':
		case 'edit_app_password':
		case 'delete_app_passwords':
		case 'delete_app_password':
			$caps = map_meta_cap( 'edit_user', $user_id, $args[0] );
			break;
		default:
			// Handle meta capabilities for custom post types.
			global $post_type_meta_caps;
			if ( isset( $post_type_meta_caps[ $cap ] ) ) {
				return map_meta_cap( $post_type_meta_caps[ $cap ], $user_id, ...$args );
			}

			// Block capabilities map to their post equivalent.
			$block_caps = array(
				'edit_blocks',
				'edit_others_blocks',
				'publish_blocks',
				'read_private_blocks',
				'delete_blocks',
				'delete_private_blocks',
				'delete_published_blocks',
				'delete_others_blocks',
				'edit_private_blocks',
				'edit_published_blocks',
			);
			if ( in_array( $cap, $block_caps, true ) ) {
				$cap = str_replace( '_blocks', '_posts', $cap );
			}

			// If no meta caps match, return the original cap.
			$caps[] = $cap;
	}

	/**
	 * Filters the primitive capabilities required of the given user to satisfy the
	 * capability being checked.
	 *
	 * @since 2.8.0
	 *
	 * @param string[] $caps    Primitive capabilities required of the user.
	 * @param string   $cap     Capability being checked.
	 * @param int      $user_id The user ID.
	 * @param array    $args    Adds context to the capability check, typically
	 *                          starting with an object ID.
	 */
	return apply_filters( 'map_meta_cap', $caps, $cap, $user_id, $args );
}

/**
 * Returns whether the current user has the specified capability.
 *
 * This function also accepts an ID of an object to check against if the capability is a meta capability. Meta
 * capabilities such as `edit_post` and `edit_user` are capabilities used by the `map_meta_cap()` function to
 * map to primitive capabilities that a user or role has, such as `edit_posts` and `edit_others_posts`.
 *
 * Example usage:
 *
 *     current_user_can( 'edit_posts' );
 *     current_user_can( 'edit_post', $post->ID );
 *     current_user_can( 'edit_post_meta', $post->ID, $meta_key );
 *
 * While checking against particular roles in place of a capability is supported
 * in part, this practice is discouraged as it may produce unreliable results.
 *
 * Note: Will always return true if the current user is a super admin, unless specifically denied.
 *
 * @since 2.0.0
 * @since 5.3.0 Formalized the existing and already documented `...$args` parameter
 *              by adding it to the function signature.
 * @since 5.8.0 Converted to wrapper for the user_can() function.
 *
 * @see WP_User::has_cap()
 * @see map_meta_cap()
 *
 * @param string $capability Capability name.
 * @param mixed  ...$args    Optional further parameters, typically starting with an object ID.
 * @return bool Whether the current user has the given capability. If `$capability` is a meta cap and `$object_id` is
 *              passed, whether the current user has the given meta capability for the given object.
 */
function current_user_can( $capability, ...$args ) {
	return user_can( wp_get_current_user(), $capability, ...$args );
}

/**
 * Returns whether the current user has the specified capability for a given site.
 *
 * This function also accepts an ID of an object to check against if the capability is a meta capability. Meta
 * capabilities such as `edit_post` and `edit_user` are capabilities used by the `map_meta_cap()` function to
 * map to primitive capabilities that a user or role has, such as `edit_posts` and `edit_others_posts`.
 *
 * Example usage:
 *
 *     current_user_can_for_blog( $blog_id, 'edit_posts' );
 *     current_user_can_for_blog( $blog_id, 'edit_post', $post->ID );
 *     current_user_can_for_blog( $blog_id, 'edit_post_meta', $post->ID, $meta_key );
 *
 * @since 3.0.0
 * @since 5.3.0 Formalized the existing and already documented `...$args` parameter
 *              by adding it to the function signature.
 * @since 5.8.0 Wraps current_user_can() after switching to blog.
 *
 * @param int    $blog_id    Site ID.
 * @param string $capability Capability name.
 * @param mixed  ...$args    Optional further parameters, typically starting with an object ID.
 * @return bool Whether the user has the given capability.
 */
function current_user_can_for_blog( $blog_id, $capability, ...$args ) {
	$switched = is_multisite() ? switch_to_blog( $blog_id ) : false;

	$can = current_user_can( $capability, ...$args );

	if ( $switched ) {
		restore_current_blog();
	}

	return $can;
}

/**
 * Returns whether the author of the supplied post has the specified capability.
 *
 * This function also accepts an ID of an object to check against if the capability is a meta capability. Meta
 * capabilities such as `edit_post` and `edit_user` are capabilities used by the `map_meta_cap()` function to
 * map to primitive capabilities that a user or role has, such as `edit_posts` and `edit_others_posts`.
 *
 * Example usage:
 *
 *     author_can( $post, 'edit_posts' );
 *     author_can( $post, 'edit_post', $post->ID );
 *     author_can( $post, 'edit_post_meta', $post->ID, $meta_key );
 *
 * @since 2.9.0
 * @since 5.3.0 Formalized the existing and already documented `...$args` parameter
 *              by adding it to the function signature.
 *
 * @param int|WP_Post $post       Post ID or post object.
 * @param string      $capability Capability name.
 * @param mixed       ...$args    Optional further parameters, typically starting with an object ID.
 * @return bool Whether the post author has the given capability.
 */
function author_can( $post, $capability, ...$args ) {
	$post = get_post( $post );
	if ( ! $post ) {
		return false;
	}

	$author = get_userdata( $post->post_author );

	if ( ! $author ) {
		return false;
	}

	return $author->has_cap( $capability, ...$args );
}

/**
 * Returns whether a particular user has the specified capability.
 *
 * This function also accepts an ID of an object to check against if the capability is a meta capability. Meta
 * capabilities such as `edit_post` and `edit_user` are capabilities used by the `map_meta_cap()` function to
 * map to primitive capabilities that a user or role has, such as `edit_posts` and `edit_others_posts`.
 *
 * Example usage:
 *
 *     user_can( $user->ID, 'edit_posts' );
 *     user_can( $user->ID, 'edit_post', $post->ID );
 *     user_can( $user->ID, 'edit_post_meta', $post->ID, $meta_key );
 *
 * @since 3.1.0
 * @since 5.3.0 Formalized the existing and already documented `...$args` parameter
 *              by adding it to the function signature.
 *
 * @param int|WP_User $user       User ID or object.
 * @param string      $capability Capability name.
 * @param mixed       ...$args    Optional further parameters, typically starting with an object ID.
 * @return bool Whether the user has the given capability.
 */
function user_can( $user, $capability, ...$args ) {
	if ( ! is_object( $user ) ) {
		$user = get_userdata( $user );
	}

	if ( empty( $user ) ) {
		// User is logged out, create anonymous user object.
		$user = new WP_User( 0 );
		$user->init( new stdClass() );
	}

	return $user->has_cap( $capability, ...$args );
}

/**
 * Retrieves the global WP_Roles instance and instantiates it if necessary.
 *
 * @since 4.3.0
 *
 * @global WP_Roles $wp_roles WordPress role management object.
 *
 * @return WP_Roles WP_Roles global instance if not already instantiated.
 */
function wp_roles() {
	global $wp_roles;

	if ( ! isset( $wp_roles ) ) {
		$wp_roles = new WP_Roles();
	}
	return $wp_roles;
}

/**
 * Retrieves role object.
 *
 * @since 2.0.0
 *
 * @param string $role Role name.
 * @return WP_Role|null WP_Role object if found, null if the role does not exist.
 */
function get_role( $role ) {
	return wp_roles()->get_role( $role );
}

/**
 * Adds a role, if it does not exist.
 *
 * @since 2.0.0
 *
 * @param string $role         Role name.
 * @param string $display_name Display name for role.
 * @param bool[] $capabilities List of capabilities keyed by the capability name,
 *                             e.g. array( 'edit_posts' => true, 'delete_posts' => false ).
 * @return WP_Role|void WP_Role object, if the role is added.
 */
function add_role( $role, $display_name, $capabilities = array() ) {
	if ( empty( $role ) ) {
		return;
	}

	return wp_roles()->add_role( $role, $display_name, $capabilities );
}

/**
 * Removes a role, if it exists.
 *
 * @since 2.0.0
 *
 * @param string $role Role name.
 */
function remove_role( $role ) {
	wp_roles()->remove_role( $role );
}

/**
 * Retrieves a list of super admins.
 *
 * @since 3.0.0
 *
 * @global array $super_admins
 *
 * @return string[] List of super admin logins.
 */
function get_super_admins() {
	global $super_admins;

	if ( isset( $super_admins ) ) {
		return $super_admins;
	} else {
		return get_site_option( 'site_admins', array( 'admin' ) );
	}
}

/**
 * Determines whether user is a site admin.
 *
 * @since 3.0.0
 *
 * @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_id = false ) {
	if ( ! $user_id ) {
		$user = wp_get_current_user();
	} else {
		$user = get_userdata( $user_id );
	}

	if ( ! $user || ! $user->exists() ) {
		return false;
	}

	if ( is_multisite() ) {
		$super_admins = get_super_admins();
		if ( is_array( $super_admins ) && in_array( $user->user_login, $super_admins, true ) ) {
			return true;
		}
	} else {
		if ( $user->has_cap( 'delete_users' ) ) {
			return true;
		}
	}

	return false;
}

/**
 * Grants Super Admin privileges.
 *
 * @since 3.0.0
 *
 * @global array $super_admins
 *
 * @param int $user_id ID of the user to be granted Super Admin privileges.
 * @return bool True on success, false on failure. This can fail when the user is
 *              already a super admin or when the `$super_admins` global is defined.
 */
function grant_super_admin( $user_id ) {
	// If global super_admins override is defined, there is nothing to do here.
	if ( isset( $GLOBALS['super_admins'] ) || ! is_multisite() ) {
		return false;
	}

	/**
	 * Fires before the user is granted Super Admin privileges.
	 *
	 * @since 3.0.0
	 *
	 * @param int $user_id ID of the user that is about to be granted Super Admin privileges.
	 */
	do_action( 'grant_super_admin', $user_id );

	// Directly fetch site_admins instead of using get_super_admins().
	$super_admins = get_site_option( 'site_admins', array( 'admin' ) );

	$user = get_userdata( $user_id );
	if ( $user && ! in_array( $user->user_login, $super_admins, true ) ) {
		$super_admins[] = $user->user_login;
		update_site_option( 'site_admins', $super_admins );

		/**
		 * Fires after the user is granted Super Admin privileges.
		 *
		 * @since 3.0.0
		 *
		 * @param int $user_id ID of the user that was granted Super Admin privileges.
		 */
		do_action( 'granted_super_admin', $user_id );
		return true;
	}
	return false;
}

/**
 * Revokes Super Admin privileges.
 *
 * @since 3.0.0
 *
 * @global array $super_admins
 *
 * @param int $user_id ID of the user Super Admin privileges to be revoked from.
 * @return bool True on success, false on failure. This can fail when the user's email
 *              is the network admin email or when the `$super_admins` global is defined.
 */
function revoke_super_admin( $user_id ) {
	// If global super_admins override is defined, there is nothing to do here.
	if ( isset( $GLOBALS['super_admins'] ) || ! is_multisite() ) {
		return false;
	}

	/**
	 * Fires before the user's Super Admin privileges are revoked.
	 *
	 * @since 3.0.0
	 *
	 * @param int $user_id ID of the user Super Admin privileges are being revoked from.
	 */
	do_action( 'revoke_super_admin', $user_id );

	// Directly fetch site_admins instead of using get_super_admins().
	$super_admins = get_site_option( 'site_admins', array( 'admin' ) );

	$user = get_userdata( $user_id );
	if ( $user && 0 !== strcasecmp( $user->user_email, get_site_option( 'admin_email' ) ) ) {
		$key = array_search( $user->user_login, $super_admins, true );
		if ( false !== $key ) {
			unset( $super_admins[ $key ] );
			update_site_option( 'site_admins', $super_admins );

			/**
			 * Fires after the user's Super Admin privileges are revoked.
			 *
			 * @since 3.0.0
			 *
			 * @param int $user_id ID of the user Super Admin privileges were revoked from.
			 */
			do_action( 'revoked_super_admin', $user_id );
			return true;
		}
	}
	return false;
}

/**
 * Filters the user capabilities to grant the 'install_languages' capability as necessary.
 *
 * A user must have at least one out of the 'update_core', 'install_plugins', and
 * 'install_themes' capabilities to qualify for 'install_languages'.
 *
 * @since 4.9.0
 *
 * @param bool[] $allcaps An array of all the user's capabilities.
 * @return bool[] Filtered array of the user's capabilities.
 */
function wp_maybe_grant_install_languages_cap( $allcaps ) {
	if ( ! empty( $allcaps['update_core'] ) || ! empty( $allcaps['install_plugins'] ) || ! empty( $allcaps['install_themes'] ) ) {
		$allcaps['install_languages'] = true;
	}

	return $allcaps;
}

/**
 * Filters the user capabilities to grant the 'resume_plugins' and 'resume_themes' capabilities as necessary.
 *
 * @since 5.2.0
 *
 * @param bool[] $allcaps An array of all the user's capabilities.
 * @return bool[] Filtered array of the user's capabilities.
 */
function wp_maybe_grant_resume_extensions_caps( $allcaps ) {
	// Even in a multisite, regular administrators should be able to resume plugins.
	if ( ! empty( $allcaps['activate_plugins'] ) ) {
		$allcaps['resume_plugins'] = true;
	}

	// Even in a multisite, regular administrators should be able to resume themes.
	if ( ! empty( $allcaps['switch_themes'] ) ) {
		$allcaps['resume_themes'] = true;
	}

	return $allcaps;
}

/**
 * Filters the user capabilities to grant the 'view_site_health_checks' capabilities as necessary.
 *
 * @since 5.2.2
 *
 * @param bool[]   $allcaps An array of all the user's capabilities.
 * @param string[] $caps    Required primitive capabilities for the requested capability.
 * @param array    $args {
 *     Arguments that accompany the requested capability check.
 *
 *     @type string    $0 Requested capability.
 *     @type int       $1 Concerned user ID.
 *     @type mixed  ...$2 Optional second and further parameters, typically object ID.
 * }
 * @param WP_User  $user    The user object.
 * @return bool[] Filtered array of the user's capabilities.
 */
function wp_maybe_grant_site_health_caps( $allcaps, $caps, $args, $user ) {
	if ( ! empty( $allcaps['install_plugins'] ) && ( ! is_multisite() || is_super_admin( $user->ID ) ) ) {
		$allcaps['view_site_health_checks'] = true;
	}

	return $allcaps;
}

return;

// Dummy gettext calls to get strings in the catalog.
/* translators: User role for administrators. */
_x( 'Administrator', 'User role' );
/* translators: User role for editors. */
_x( 'Editor', 'User role' );
/* translators: User role for authors. */
_x( 'Author', 'User role' );
/* translators: User role for contributors. */
_x( 'Contributor', 'User role' );
/* translators: User role for subscribers. */
_x( 'Subscriber', 'User role' );

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
May 21 2025 21:42:20
1032 / wheelch2
0755
ID3
--
February 21 2024 04:25:51
1032 / wheelch2
0755
IXR
--
February 21 2024 04:25:51
1032 / wheelch2
0755
PHPMailer
--
December 06 2023 05:33:44
1032 / wheelch2
0755
Requests
--
May 29 2023 22:38:19
1032 / wheelch2
0755
SimplePie
--
March 06 2020 21:43:31
1032 / wheelch2
0755
Text
--
February 19 2024 02:18:53
1032 / wheelch2
0755
assets
--
February 19 2024 02:18:53
1032 / wheelch2
0755
block-patterns
--
February 20 2024 03:44:41
1032 / wheelch2
0755
block-supports
--
March 05 2024 12:06:43
1032 / wheelch2
0755
blocks
--
March 05 2024 12:06:43
1032 / wheelch2
0755
certificates
--
February 20 2024 03:44:41
1032 / wheelch2
0755
css
--
February 17 2024 04:03:26
1032 / wheelch2
0755
customize
--
May 29 2023 22:38:18
1032 / wheelch2
0755
fonts
--
March 05 2024 12:06:43
1032 / wheelch2
0755
html-api
--
March 05 2024 12:06:43
1032 / wheelch2
0755
images
--
February 21 2024 04:25:51
1032 / wheelch2
0755
js
--
February 19 2024 02:18:53
1032 / wheelch2
0755
php-compat
--
February 17 2024 04:03:26
1032 / wheelch2
0755
pomo
--
February 17 2024 04:03:26
1032 / wheelch2
0755
random_compat
--
February 21 2024 04:25:51
1032 / wheelch2
0755
rest-api
--
February 21 2024 04:25:51
1032 / wheelch2
0755
sitemaps
--
May 29 2023 22:38:18
1032 / wheelch2
0755
sodium_compat
--
February 20 2024 03:44:41
1032 / wheelch2
0755
style-engine
--
February 20 2024 03:44:41
1032 / wheelch2
0755
theme-compat
--
February 20 2024 03:44:41
1032 / wheelch2
0755
widgets
--
February 20 2024 03:44:41
1032 / wheelch2
0755
wp-backup
--
May 20 2025 03:29:06
1032 / wheelch2
0755
admin-bar.php
35.152 KB
September 26 2023 20:59:20
1032 / wheelch2
0644
atomlib.php
11.67 KB
April 21 2022 15:54:18
1032 / wheelch2
0644
author-template.php
18.507 KB
May 14 2023 22:28:24
1032 / wheelch2
0644
block-editor.php
27.269 KB
September 27 2023 22:10:20
1032 / wheelch2
0644
block-i18n.json
0.309 KB
August 11 2021 13:38:02
1032 / wheelch2
0644
block-patterns.php
12.639 KB
November 10 2023 21:30:26
1032 / wheelch2
0644
block-template-utils.php
47.348 KB
November 17 2023 12:47:24
1032 / wheelch2
0644
block-template.php
12 KB
October 27 2023 23:06:22
1032 / wheelch2
0644
blocks.php
69.784 KB
November 06 2023 20:59:18
1032 / wheelch2
0644
bookmark-template.php
12.606 KB
June 22 2023 19:27:24
1032 / wheelch2
0644
bookmark.php
15.018 KB
July 10 2023 00:47:30
1032 / wheelch2
0644
cache-compat.php
5.829 KB
October 10 2022 22:52:12
1032 / wheelch2
0644
cache.php
13.158 KB
October 10 2022 22:52:12
1032 / wheelch2
0644
canonical.php
33.269 KB
January 26 2024 01:13:16
1032 / wheelch2
0644
capabilities.php
39.088 KB
July 10 2023 00:47:30
1032 / wheelch2
0644
category-template.php
55.667 KB
September 26 2023 04:57:12
1032 / wheelch2
0644
category.php
12.411 KB
August 24 2023 13:31:16
1032 / wheelch2
0644
checkbox.php
0 KB
December 16 2023 06:00:19
1032 / wheelch2
0644
class-IXR.php
2.483 KB
February 06 2020 12:03:12
1032 / wheelch2
0644
class-feed.php
0.517 KB
February 06 2020 12:03:12
1032 / wheelch2
0644
class-http.php
0.358 KB
June 17 2022 15:50:14
1032 / wheelch2
0644
class-json.php
42.66 KB
February 03 2023 19:05:20
1032 / wheelch2
0644
class-oembed.php
0.392 KB
June 17 2022 15:50:14
1032 / wheelch2
0644
class-phpass.php
6.551 KB
February 13 2023 14:38:24
1032 / wheelch2
0644
class-phpmailer.php
0.648 KB
July 21 2020 17:28:02
1032 / wheelch2
0644
class-pop3.php
20.478 KB
February 11 2023 18:13:22
1032 / wheelch2
0644
class-requests.php
2.185 KB
April 05 2023 17:42:26
1032 / wheelch2
0644
class-simplepie.php
95.824 KB
May 13 2023 02:05:22
1032 / wheelch2
0644
class-smtp.php
0.446 KB
January 26 2021 19:15:58
1032 / wheelch2
0644
class-snoopy.php
36.831 KB
February 03 2023 19:05:20
1032 / wheelch2
0644
class-walker-category-dropdown.php
2.411 KB
September 14 2023 17:16:20
1032 / wheelch2
0644
class-walker-category.php
8.278 KB
September 08 2023 14:02:24
1032 / wheelch2
0644
class-walker-comment.php
13.88 KB
September 09 2023 13:58:26
1032 / wheelch2
0644
class-walker-nav-menu.php
11.048 KB
June 27 2023 19:56:28
1032 / wheelch2
0644
class-walker-page-dropdown.php
2.646 KB
September 14 2023 17:16:20
1032 / wheelch2
0644
class-walker-page.php
7.434 KB
September 14 2023 17:16:20
1032 / wheelch2
0644
class-wp-admin-bar.php
16.957 KB
July 10 2023 00:47:30
1032 / wheelch2
0644
class-wp-ajax-response.php
5.143 KB
September 12 2022 20:17:14
1032 / wheelch2
0644
class-wp-application-passwords.php
12.553 KB
May 09 2023 03:07:24
1032 / wheelch2
0644
class-wp-block-editor-context.php
1.318 KB
September 12 2022 20:17:14
1032 / wheelch2
0644
class-wp-block-list.php
4.661 KB
October 09 2023 15:53:28
1032 / wheelch2
0644
class-wp-block-parser-block.php
2.495 KB
June 27 2023 05:15:38
1032 / wheelch2
0644
class-wp-block-parser-frame.php
1.871 KB
June 27 2023 05:15:38
1032 / wheelch2
0644
class-wp-block-parser.php
11.262 KB
October 16 2023 23:47:20
1032 / wheelch2
0644
class-wp-block-pattern-categories-registry.php
5.245 KB
September 12 2022 20:17:14
1032 / wheelch2
0644
class-wp-block-patterns-registry.php
9.841 KB
October 17 2023 20:18:24
1032 / wheelch2
0644
class-wp-block-styles-registry.php
5.745 KB
September 12 2022 20:17:14
1032 / wheelch2
0644
class-wp-block-supports.php
5.39 KB
September 29 2023 14:50:30
1032 / wheelch2
0644
class-wp-block-template.php
1.905 KB
June 23 2023 10:59:24
1032 / wheelch2
0644
class-wp-block-type-registry.php
4.896 KB
October 12 2023 17:04:34
1032 / wheelch2
0644
class-wp-block-type.php
14.397 KB
September 14 2023 17:55:18
1032 / wheelch2
0644
class-wp-block.php
8.204 KB
September 09 2023 13:58:26
1032 / wheelch2
0644
class-wp-classic-to-block-menu-converter.php
3.992 KB
August 21 2023 22:21:20
1032 / wheelch2
0644
class-wp-comment-query.php
46.708 KB
September 09 2023 13:58:26
1032 / wheelch2
0644
class-wp-comment.php
9.152 KB
August 24 2023 13:14:24
1032 / wheelch2
0644
class-wp-customize-control.php
25.236 KB
September 08 2023 14:02:24
1032 / wheelch2
0644
class-wp-customize-manager.php
197.517 KB
September 30 2023 02:09:26
1032 / wheelch2
0644
class-wp-customize-nav-menus.php
55.975 KB
September 26 2023 01:35:22
1032 / wheelch2
0644
class-wp-customize-panel.php
10.42 KB
September 10 2023 13:34:18
1032 / wheelch2
0644
class-wp-customize-section.php
10.98 KB
September 10 2023 13:34:18
1032 / wheelch2
0644
class-wp-customize-setting.php
29.188 KB
September 10 2023 13:34:18
1032 / wheelch2
0644
class-wp-customize-widgets.php
69.934 KB
September 26 2023 01:35:22
1032 / wheelch2
0644
class-wp-date-query.php
34.882 KB
June 22 2023 19:06:26
1032 / wheelch2
0644
class-wp-dependencies.php
13.732 KB
September 08 2023 14:02:24
1032 / wheelch2
0644
class-wp-dependency.php
2.565 KB
November 25 2022 20:42:16
1032 / wheelch2
0644
class-wp-duotone.php
38.519 KB
October 24 2023 15:38:26
1032 / wheelch2
0644
class-wp-editor.php
70.395 KB
July 15 2023 01:29:26
1032 / wheelch2
0644
class-wp-embed.php
15.619 KB
July 10 2023 00:47:30
1032 / wheelch2
0644
class-wp-error.php
7.326 KB
February 21 2023 22:09:20
1032 / wheelch2
0644
class-wp-fatal-error-handler.php
7.688 KB
February 23 2023 16:08:22
1032 / wheelch2
0644
class-wp-feed-cache-transient.php
2.525 KB
September 12 2022 20:17:14
1032 / wheelch2
0644
class-wp-feed-cache.php
0.946 KB
August 10 2023 05:36:22
1032 / wheelch2
0644
class-wp-hook.php
15.625 KB
September 18 2023 17:11:18
1032 / wheelch2
0644
class-wp-http-cookie.php
7.216 KB
June 24 2023 21:47:24
1032 / wheelch2
0644
class-wp-http-curl.php
12.247 KB
September 21 2023 22:59:12
1032 / wheelch2
0644
class-wp-http-encoding.php
6.532 KB
June 22 2023 19:27:24
1032 / wheelch2
0644
class-wp-http-ixr-client.php
3.419 KB
September 12 2022 20:17:14
1032 / wheelch2
0644
class-wp-http-proxy.php
5.84 KB
June 22 2023 19:06:26
1032 / wheelch2
0644
class-wp-http-requests-hooks.php
1.975 KB
December 16 2022 03:02:18
1032 / wheelch2
0644
class-wp-http-requests-response.php
4.297 KB
October 11 2023 11:35:26
1032 / wheelch2
0644
class-wp-http-response.php
2.907 KB
September 12 2022 20:17:14
1032 / wheelch2
0644
class-wp-http-streams.php
16.464 KB
September 21 2023 22:59:12
1032 / wheelch2
0644
class-wp-http.php
39.634 KB
September 26 2023 21:25:20
1032 / wheelch2
0644
class-wp-image-editor-gd.php
17.114 KB
August 19 2023 04:40:24
1032 / wheelch2
0644
class-wp-image-editor-imagick.php
30.47 KB
September 08 2023 14:02:24
1032 / wheelch2
0644
class-wp-image-editor.php
17.172 KB
September 07 2023 19:29:22
1032 / wheelch2
0644
class-wp-list-util.php
7.269 KB
September 09 2023 13:58:26
1032 / wheelch2
0644
class-wp-locale-switcher.php
6.407 KB
July 10 2023 01:55:24
1032 / wheelch2
0644
class-wp-locale.php
15.737 KB
July 10 2023 01:55:24
1032 / wheelch2
0644
class-wp-matchesmapregex.php
1.783 KB
September 12 2022 20:17:14
1032 / wheelch2
0644
class-wp-meta-query.php
29.817 KB
September 09 2023 13:58:26
1032 / wheelch2
0644
class-wp-metadata-lazyloader.php
6.673 KB
May 11 2023 15:45:24
1032 / wheelch2
0644
class-wp-navigation-fallback.php
8.995 KB
October 06 2023 18:36:22
1032 / wheelch2
0644
class-wp-network-query.php
18.839 KB
March 10 2023 22:00:04
1032 / wheelch2
0644
class-wp-network.php
11.903 KB
July 12 2023 14:16:26
1032 / wheelch2
0644
class-wp-object-cache.php
17.182 KB
March 14 2023 22:25:20
1032 / wheelch2
0644
class-wp-oembed-controller.php
6.718 KB
November 13 2022 19:21:20
1032 / wheelch2
0644
class-wp-oembed.php
30.658 KB
July 10 2023 01:55:24
1032 / wheelch2
0644
class-wp-paused-extensions-storage.php
4.943 KB
September 12 2022 20:17:14
1032 / wheelch2
0644
class-wp-post-type.php
29.275 KB
October 10 2023 18:35:22
1032 / wheelch2
0644
class-wp-post.php
6.332 KB
September 12 2022 20:17:14
1032 / wheelch2
0644
class-wp-query.php
148.029 KB
October 13 2023 04:11:24
1032 / wheelch2
0644
class-wp-recovery-mode-cookie-service.php
6.716 KB
October 04 2022 08:29:14
1032 / wheelch2
0644
class-wp-recovery-mode-email-service.php
10.921 KB
May 02 2023 20:15:22
1032 / wheelch2
0644
class-wp-recovery-mode-key-service.php
4.396 KB
February 21 2023 21:29:18
1032 / wheelch2
0644
class-wp-recovery-mode-link-service.php
3.382 KB
September 12 2022 20:17:14
1032 / wheelch2
0644
class-wp-recovery-mode.php
11.167 KB
May 02 2023 20:15:22
1032 / wheelch2
0644
class-wp-rewrite.php
61.943 KB
September 09 2023 13:58:26
1032 / wheelch2
0644
class-wp-role.php
2.464 KB
September 08 2023 14:02:24
1032 / wheelch2
0644
class-wp-roles.php
8.379 KB
July 28 2023 16:07:26
1032 / wheelch2
0644
class-wp-scripts.php
27.991 KB
October 13 2023 23:16:22
1032 / wheelch2
0644
class-wp-session-tokens.php
7.276 KB
September 12 2022 20:17:14
1032 / wheelch2
0644
class-wp-simplepie-file.php
3.298 KB
August 10 2023 05:36:22
1032 / wheelch2
0644
class-wp-simplepie-sanitize-kses.php
1.729 KB
August 10 2023 05:36:22
1032 / wheelch2
0644
class-wp-site-query.php
30.293 KB
June 22 2023 19:06:26
1032 / wheelch2
0644
class-wp-site.php
7.279 KB
September 12 2022 20:17:14
1032 / wheelch2
0644
class-wp-styles.php
10.643 KB
May 02 2023 20:15:22
1032 / wheelch2
0644
class-wp-tax-query.php
19.087 KB
July 08 2023 15:18:24
1032 / wheelch2
0644
class-wp-taxonomy.php
18.132 KB
April 28 2023 03:45:18
1032 / wheelch2
0644
class-wp-term-query.php
40.054 KB
November 01 2023 20:45:16
1032 / wheelch2
0644
class-wp-term.php
5.174 KB
September 12 2022 20:17:14
1032 / wheelch2
0644
class-wp-text-diff-renderer-inline.php
0.81 KB
September 08 2023 14:02:24
1032 / wheelch2
0644
class-wp-text-diff-renderer-table.php
18.366 KB
October 15 2023 19:25:24
1032 / wheelch2
0644
class-wp-textdomain-registry.php
5.836 KB
July 10 2023 01:55:24
1032 / wheelch2
0644
class-wp-theme-json-data.php
1.517 KB
September 08 2023 14:02:24
1032 / wheelch2
0644
class-wp-theme-json-resolver.php
24.063 KB
September 26 2023 18:17:20
1032 / wheelch2
0644
class-wp-theme-json-schema.php
4.124 KB
October 02 2023 15:57:24
1032 / wheelch2
0644
class-wp-theme-json.php
126.521 KB
October 10 2023 08:13:22
1032 / wheelch2
0644
class-wp-theme.php
62.761 KB
October 21 2023 00:06:02
1032 / wheelch2
0644
class-wp-user-meta-session-tokens.php
2.92 KB
January 09 2019 10:34:50
1032 / wheelch2
0644
class-wp-user-query.php
42.374 KB
September 08 2023 01:15:16
1032 / wheelch2
0644
class-wp-user-request.php
2.17 KB
September 12 2022 20:17:14
1032 / wheelch2
0644
class-wp-user.php
22.229 KB
July 10 2023 17:23:26
1032 / wheelch2
0644
class-wp-walker.php
12.857 KB
September 09 2023 13:58:26
1032 / wheelch2
0644
class-wp-widget-factory.php
3.269 KB
September 12 2022 20:17:14
1032 / wheelch2
0644
class-wp-widget.php
17.955 KB
August 25 2023 05:58:16
1032 / wheelch2
0644
class-wp-xmlrpc-server.php
209.121 KB
September 21 2023 00:01:20
1032 / wheelch2
0644
class-wp.php
25.507 KB
August 13 2023 15:01:24
1032 / wheelch2
0644
class-wpdb.php
116.657 KB
November 09 2023 02:08:22
1032 / wheelch2
0644
class.wp-dependencies.php
0.364 KB
September 20 2022 18:47:12
1032 / wheelch2
0644
class.wp-scripts.php
0.335 KB
September 20 2022 18:47:12
1032 / wheelch2
0644
class.wp-styles.php
0.33 KB
September 20 2022 18:47:12
1032 / wheelch2
0644
comment-template.php
99.055 KB
September 26 2023 01:35:22
1032 / wheelch2
0644
comment.php
126.086 KB
September 29 2023 21:43:24
1032 / wheelch2
0644
compat.php
14.862 KB
September 09 2023 13:58:26
1032 / wheelch2
0644
cron.php
40.501 KB
September 11 2023 09:57:22
1032 / wheelch2
0644
date.php
0.391 KB
June 17 2022 15:50:14
1032 / wheelch2
0644
default-constants.php
10.909 KB
September 26 2023 22:03:20
1032 / wheelch2
0644
default-filters.php
33.697 KB
January 25 2024 00:56:12
1032 / wheelch2
0644
default-widgets.php
2.17 KB
May 25 2021 12:57:58
1032 / wheelch2
0644
deprecated.php
179.501 KB
October 13 2023 21:51:22
1032 / wheelch2
0644
embed-template.php
0.33 KB
June 17 2022 15:50:14
1032 / wheelch2
0644
embed.php
36.776 KB
September 25 2023 21:36:34
1032 / wheelch2
0644
error-protection.php
4.024 KB
May 02 2023 20:15:22
1032 / wheelch2
0644
feed-atom-comments.php
5.323 KB
July 29 2023 05:01:36
1032 / wheelch2
0644
feed-atom.php
2.977 KB
November 29 2021 15:22:00
1032 / wheelch2
0644
feed-rdf.php
2.605 KB
January 29 2020 06:15:18
1032 / wheelch2
0644
feed-rss.php
1.161 KB
January 29 2020 06:15:18
1032 / wheelch2
0644
feed-rss2-comments.php
3.984 KB
February 12 2023 23:38:22
1032 / wheelch2
0644
feed-rss2.php
3.71 KB
January 29 2020 06:15:18
1032 / wheelch2
0644
feed.php
22.517 KB
July 10 2023 02:18:22
1032 / wheelch2
0644
fonts.php
2.283 KB
September 07 2023 22:00:18
1032 / wheelch2
0644
formatting.php
327.073 KB
September 26 2023 04:57:12
1032 / wheelch2
0644
functions.php
269.734 KB
November 15 2023 23:17:20
1032 / wheelch2
0644
functions.wp-scripts.php
14.413 KB
November 01 2023 20:45:16
1032 / wheelch2
0644
functions.wp-styles.php
8.382 KB
January 15 2023 20:27:14
1032 / wheelch2
0644
general-template.php
163.793 KB
November 15 2023 23:17:20
1032 / wheelch2
0644
global-styles-and-settings.php
19.731 KB
August 25 2023 00:29:18
1032 / wheelch2
0644
http.php
23.293 KB
August 03 2023 16:40:28
1032 / wheelch2
0644
https-detection.php
5.528 KB
September 22 2023 23:38:20
1032 / wheelch2
0644
https-migration.php
4.63 KB
July 11 2023 03:08:26
1032 / wheelch2
0644
kses.php
70.208 KB
September 19 2023 17:00:14
1032 / wheelch2
0644
l10n.php
61.312 KB
August 18 2023 21:59:20
1032 / wheelch2
0644
link-template.php
152.417 KB
October 16 2023 04:37:26
1032 / wheelch2
0644
load.php
52.86 KB
October 09 2023 19:19:26
1032 / wheelch2
0644
locale.php
0.158 KB
October 08 2019 21:49:04
1032 / wheelch2
0644
media-template.php
60.372 KB
September 26 2023 19:15:24
1032 / wheelch2
0644
media.php
202.505 KB
October 12 2023 17:17:22
1032 / wheelch2
0644
meta.php
62.576 KB
September 26 2023 20:02:20
1032 / wheelch2
0644
ms-blogs.php
25.027 KB
December 05 2023 01:29:20
1032 / wheelch2
0644
ms-default-constants.php
4.785 KB
July 11 2023 03:18:22
1032 / wheelch2
0644
ms-default-filters.php
6.48 KB
February 24 2023 06:53:20
1032 / wheelch2
0644
ms-deprecated.php
21.248 KB
June 22 2023 19:27:24
1032 / wheelch2
0644
ms-files.php
2.647 KB
August 23 2023 20:23:24
1032 / wheelch2
0644
ms-functions.php
89.119 KB
July 11 2023 03:18:22
1032 / wheelch2
0644
ms-load.php
19.404 KB
July 11 2023 03:18:22
1032 / wheelch2
0644
ms-network.php
3.693 KB
May 02 2023 15:56:24
1032 / wheelch2
0644
ms-settings.php
4.027 KB
June 22 2023 19:27:24
1032 / wheelch2
0644
ms-site.php
39.553 KB
September 09 2023 13:58:26
1032 / wheelch2
0644
nav-menu-template.php
25.181 KB
February 16 2023 05:34:22
1032 / wheelch2
0644
nav-menu.php
43.045 KB
July 11 2023 03:18:22
1032 / wheelch2
0644
option.php
89.199 KB
October 31 2023 04:53:24
1032 / wheelch2
0644
pluggable-deprecated.php
6.116 KB
January 12 2020 00:02:06
1032 / wheelch2
0644
pluggable.php
110.372 KB
October 03 2023 20:45:20
1032 / wheelch2
0644
plugin.php
34.634 KB
June 08 2023 12:24:22
1032 / wheelch2
0644
post-formats.php
6.934 KB
February 21 2023 22:09:20
1032 / wheelch2
0644
post-template.php
65.228 KB
August 22 2023 17:00:30
1032 / wheelch2
0644
post-thumbnail-template.php
10.066 KB
May 17 2023 23:01:24
1032 / wheelch2
0644
post.php
271.797 KB
October 13 2023 04:11:24
1032 / wheelch2
0644
query.php
36.167 KB
August 24 2023 13:31:16
1032 / wheelch2
0644
registration-functions.php
0.195 KB
November 12 2020 16:47:08
1032 / wheelch2
0644
registration.php
0.195 KB
November 12 2020 16:47:08
1032 / wheelch2
0644
rest-api.php
94.867 KB
October 12 2023 17:02:32
1032 / wheelch2
0644
revision.php
30.181 KB
October 24 2023 00:26:20
1032 / wheelch2
0644
rewrite.php
19.057 KB
July 11 2023 15:45:28
1032 / wheelch2
0644
robots-template.php
5.063 KB
April 06 2022 20:03:04
1032 / wheelch2
0644
rss-functions.php
0.249 KB
November 17 2020 04:22:06
1032 / wheelch2
0644
rss.php
22.476 KB
April 11 2023 00:01:18
1032 / wheelch2
0644
script-loader.php
127.03 KB
October 02 2023 23:18:24
1032 / wheelch2
0644
session.php
0.252 KB
February 06 2020 12:03:12
1032 / wheelch2
0644
shortcodes.php
23.297 KB
October 12 2023 17:17:22
1032 / wheelch2
0644
sitemaps.php
3.162 KB
May 15 2021 22:08:06
1032 / wheelch2
0644
spl-autoload-compat.php
0.431 KB
November 12 2020 16:47:08
1032 / wheelch2
0644
style-engine.php
7.031 KB
September 14 2023 09:26:22
1032 / wheelch2
0644
taxonomy.php
169.461 KB
November 01 2023 20:35:20
1032 / wheelch2
0644
template-canvas.php
0.531 KB
October 01 2023 04:52:28
1032 / wheelch2
0644
template-loader.php
2.941 KB
May 26 2020 14:07:10
1032 / wheelch2
0644
template.php
22.974 KB
September 20 2023 21:57:24
1032 / wheelch2
0644
theme-i18n.json
1.124 KB
September 21 2022 16:13:14
1032 / wheelch2
0644
theme-previews.php
2.76 KB
October 03 2023 03:12:24
1032 / wheelch2
0644
theme-templates.php
6.077 KB
October 13 2023 21:51:22
1032 / wheelch2
0644
theme.json
7.132 KB
September 21 2023 11:05:20
1032 / wheelch2
0644
theme.php
128.134 KB
December 05 2023 01:29:20
1032 / wheelch2
0644
update.php
35.961 KB
September 12 2023 19:53:18
1032 / wheelch2
0644
user.php
167.136 KB
September 14 2023 05:55:16
1032 / wheelch2
0644
vars.php
6.057 KB
September 21 2023 01:21:20
1032 / wheelch2
0644
version.php
0.906 KB
January 31 2024 00:40:16
1032 / wheelch2
0644
widgets.php
68.237 KB
July 11 2023 03:41:22
1032 / wheelch2
0644
wlwmanifest.xml
1.021 KB
December 12 2013 01:19:12
1032 / wheelch2
0644
wp-db.php
0.435 KB
July 22 2022 03:15:12
1032 / wheelch2
0644
wp-diff.php
0.632 KB
February 06 2020 12:03:12
1032 / wheelch2
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF