make_site_theme_from_default() WordPress Function

The make_site_theme_from_default() function enables you to create a new theme for your site based on the default WordPress theme. This is useful if you want to create a custom theme for your site without having to start from scratch.

make_site_theme_from_default( string $theme_name, string $template ) #

Creates a site theme from the default theme.


Description


Top ↑

Parameters

$theme_name

(string)(Required)The name of the theme.

$template

(string)(Required)The directory name of the theme.


Top ↑

Return

(void|false)


Top ↑

Source

File: wp-admin/includes/upgrade.php

function make_site_theme_from_default( $theme_name, $template ) {
	$site_dir    = WP_CONTENT_DIR . "/themes/$template";
	$default_dir = WP_CONTENT_DIR . '/themes/' . WP_DEFAULT_THEME;

	// Copy files from the default theme to the site theme.
	// $files = array( 'index.php', 'comments.php', 'comments-popup.php', 'footer.php', 'header.php', 'sidebar.php', 'style.css' );

	$theme_dir = @opendir( $default_dir );
	if ( $theme_dir ) {
		while ( ( $theme_file = readdir( $theme_dir ) ) !== false ) {
			if ( is_dir( "$default_dir/$theme_file" ) ) {
				continue;
			}
			if ( ! copy( "$default_dir/$theme_file", "$site_dir/$theme_file" ) ) {
				return;
			}
			chmod( "$site_dir/$theme_file", 0777 );
		}

		closedir( $theme_dir );
	}

	// Rewrite the theme header.
	$stylelines = explode( "\n", implode( '', file( "$site_dir/style.css" ) ) );
	if ( $stylelines ) {
		$f = fopen( "$site_dir/style.css", 'w' );

		foreach ( $stylelines as $line ) {
			if ( strpos( $line, 'Theme Name:' ) !== false ) {
				$line = 'Theme Name: ' . $theme_name;
			} elseif ( strpos( $line, 'Theme URI:' ) !== false ) {
				$line = 'Theme URI: ' . __get_option( 'url' );
			} elseif ( strpos( $line, 'Description:' ) !== false ) {
				$line = 'Description: Your theme.';
			} elseif ( strpos( $line, 'Version:' ) !== false ) {
				$line = 'Version: 1';
			} elseif ( strpos( $line, 'Author:' ) !== false ) {
				$line = 'Author: You';
			}
			fwrite( $f, $line . "\n" );
		}
		fclose( $f );
	}

	// Copy the images.
	umask( 0 );
	if ( ! mkdir( "$site_dir/images", 0777 ) ) {
		return false;
	}

	$images_dir = @opendir( "$default_dir/images" );
	if ( $images_dir ) {
		while ( ( $image = readdir( $images_dir ) ) !== false ) {
			if ( is_dir( "$default_dir/images/$image" ) ) {
				continue;
			}
			if ( ! copy( "$default_dir/images/$image", "$site_dir/images/$image" ) ) {
				return;
			}
			chmod( "$site_dir/images/$image", 0777 );
		}

		closedir( $images_dir );
	}
}


Top ↑

Changelog

Changelog
VersionDescription
1.5.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.