make_site_theme_from_default()
最后更新于:2021-11-27 14:40:16
make_site_theme_from_default( string$theme_name, string$template)Creates a site theme from the default theme.
参数
- $theme_name
-
(string) (Required) The name of the theme.
- $template
-
(string) (Required) The directory name of the theme.
响应
(void|false)
源文件
文件: gc-admin/includes/upgrade.php
function make_site_theme_from_default( $theme_name, $template ) {
$site_dir = GC_CONTENT_DIR . "/themes/$template";
$default_dir = GC_CONTENT_DIR . '/themes/' . GC_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 );
}
}