Advertisements

make_site_theme_from_oldschool

Definition:
function make_site_theme_from_oldschool($theme_name, $template) {}

Parameters

  • unknown_type $theme_name
  • unknown_type $template

Source code

function make_site_theme_from_oldschool($theme_name, $template) {

	$home_path = get_home_path();

	$site_dir = WP_CONTENT_DIR . "/themes/$template";



	if (! file_exists("$home_path/index.php"))

		return false;



	// Copy files from the old locations to the site theme.

	// TODO: This does not copy arbitarary 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 ($oldfile == 'index.php')

			$oldpath = $home_path;

		else

			$oldpath = ABSPATH;



		if ($oldfile == 'index.php') { // Check to make sure it's not a new index

			$index = implode('', file("$oldpath/$oldfile"));

			if (strpos($index, 'WP_USE_THEMES') !== false) {

				if (! @copy(WP_CONTENT_DIR . '/themes/' . WP_DEFAULT_THEME . '/index.php', "$site_dir/$newfile"))

					return false;

				continue; // Don't copy anything

				}

		}



		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);

		}

	}

2317

Advertisements

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: