wpseek.com
A WordPress-centric search engine for devs and theme authors
make_site_theme_from_oldschool › WordPress Function
Since1.5.0
Deprecatedn/a
› make_site_theme_from_oldschool ( $theme_name, $template )
Parameters: (2) |
|
Returns: |
|
Defined at: |
|
Codex: |
Creates a site theme from an existing theme.
{@internal Missing Long Description}}Related Functions: make_site_theme_from_default, make_site_theme, get_theme_mods, get_theme_roots, rest_sanitize_value_from_schema
Source
function make_site_theme_from_oldschool( $theme_name, $template ) {
$home_path = get_home_path();
$site_dir = WP_CONTENT_DIR . "/themes/$template";
$default_dir = WP_CONTENT_DIR . '/themes/' . WP_DEFAULT_THEME;
if ( ! file_exists( "$home_path/index.php" ) ) {
return false;
}
/*
* Copy files from the old locations to the site theme.
* TODO: This does not copy arbitrary include dependencies. Only the standard WP files are copied.
*/
$files = array(
'index.php' => 'index.php',
'wp-layout.css' => 'style.css',
'wp-comments.php' => 'comments.php',
'wp-comments-popup.php' => 'comments-popup.php',
);
foreach ( $files as $oldfile => $newfile ) {
if ( 'index.php' === $oldfile ) {
$oldpath = $home_path;
} else {
$oldpath = ABSPATH;
}
// Check to make sure it's not a new index.
if ( 'index.php' === $oldfile ) {
$index = implode( '', file( "$oldpath/$oldfile" ) );
if ( str_contains( $index, 'WP_USE_THEMES' ) ) {
if ( ! copy( "$default_dir/$oldfile", "$site_dir/$newfile" ) ) {
return false;
}
// Don't copy anything.
continue;
}
}
if ( ! copy( "$oldpath/$oldfile", "$site_dir/$newfile" ) ) {
return false;
}
chmod( "$site_dir/$newfile", 0777 );
// Update the blog header include in each file.
$lines = explode( "\n", implode( '', file( "$site_dir/$newfile" ) ) );
if ( $lines ) {
$f = fopen( "$site_dir/$newfile", 'w' );
foreach ( $lines as $line ) {
if ( preg_match( '/require.*wp-blog-header/', $line ) ) {
$line = '//' . $line;
}
// Update stylesheet references.
$line = str_replace(
"<?php echo __get_option('siteurl'); ?>/wp-layout.css",
"<?php bloginfo('stylesheet_url'); ?>",
$line
);
// Update comments template inclusion.
$line = str_replace(
"<?php include(ABSPATH . 'wp-comments.php'); ?>",
'<?php comments_template(); ?>',
$line
);
fwrite( $f, "{$line}\n" );
}
fclose( $f );
}
}
// Add a theme header.
$header = "/*\n" .
"Theme Name: $theme_name\n" .
'Theme URI: ' . __get_option( 'siteurl' ) . "\n" .
"Description: A theme automatically created by the update.\n" .
"Version: 1.0\n" .
"Author: Moi\n" .
"*/\n";
$stylelines = file_get_contents( "$site_dir/style.css" );
if ( $stylelines ) {
$f = fopen( "$site_dir/style.css", 'w' );
fwrite( $f, $header );
fwrite( $f, $stylelines );
fclose( $f );
}
return true;
}