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
Parameters
- $theme_name
(string)(Required)The name of the theme.
- $template
(string)(Required)The directory name of the theme.
Return
(void|false)
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 ); } }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
1.5.0 | Introduced. |