WordPress Version: 6.3
/**
* Creates a site theme from the default theme.
*
* {@internal Missing Long Description}}
*
* @since 1.5.0
*
* @param string $theme_name The name of the theme.
* @param string $template The directory name of the theme.
* @return void|false
*/
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');
$headers = array('Theme Name:' => $theme_name, 'Theme URI:' => __get_option('url'), 'Description:' => 'Your theme.', 'Version:' => '1', 'Author:' => 'You');
foreach ($stylelines as $line) {
foreach ($headers as $header => $value) {
if (str_contains($line, $header)) {
$line = $header . ' ' . $value;
break;
}
}
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);
}
}