WP_REST_Templates_Controller::get_wp_templates_author_text_field()private staticWP 6.5.0

Returns a human readable text for the author of the template.

Метод класса: WP_REST_Templates_Controller{}

Хуков нет.

Возвращает

Строку. Human readable text for the author.

Использование

$result = WP_REST_Templates_Controller::get_wp_templates_author_text_field( $template_object );
$template_object(WP_Block_Template) (обязательный)
Template instance.

Список изменений

С версии 6.5.0 Введена.

Код WP_REST_Templates_Controller::get_wp_templates_author_text_field() WP 6.7.1

private static function get_wp_templates_author_text_field( $template_object ) {
	$original_source = self::get_wp_templates_original_source_field( $template_object );
	switch ( $original_source ) {
		case 'theme':
			$theme_name = wp_get_theme( $template_object->theme )->get( 'Name' );
			return empty( $theme_name ) ? $template_object->theme : $theme_name;
		case 'plugin':
			if ( ! function_exists( 'get_plugins' ) || ! function_exists( 'get_plugin_data' ) ) {
				require_once ABSPATH . 'wp-admin/includes/plugin.php';
			}
			if ( isset( $template_object->plugin ) ) {
				$plugins = wp_get_active_and_valid_plugins();

				foreach ( $plugins as $plugin_file ) {
					$plugin_basename = plugin_basename( $plugin_file );
					// Split basename by '/' to get the plugin slug.
					list( $plugin_slug, ) = explode( '/', $plugin_basename );

					if ( $plugin_slug === $template_object->plugin ) {
						$plugin_data = get_plugin_data( $plugin_file );

						if ( ! empty( $plugin_data['Name'] ) ) {
							return $plugin_data['Name'];
						}

						break;
					}
				}
			}

			/*
			 * Fall back to the theme name if the plugin is not defined. That's needed to keep backwards
			 * compatibility with templates that were registered before the plugin attribute was added.
			 */
			$plugins         = get_plugins();
			$plugin_basename = plugin_basename( sanitize_text_field( $template_object->theme . '.php' ) );
			if ( isset( $plugins[ $plugin_basename ] ) && isset( $plugins[ $plugin_basename ]['Name'] ) ) {
				return $plugins[ $plugin_basename ]['Name'];
			}
			return isset( $template_object->plugin ) ?
				$template_object->plugin :
				$template_object->theme;
		case 'site':
			return get_bloginfo( 'name' );
		case 'user':
			$author = get_user_by( 'id', $template_object->author );
			if ( ! $author ) {
				return __( 'Unknown author' );
			}
			return $author->get( 'display_name' );
	}

	// Fail-safe to return a string should the original source ever fall through.
	return '';
}