Running multiple wordpress blog copies from different locations.

September 30, 2012

This is something that was bugging me for a while. How can multiple developers work on same wordpress without messing up the code ?

The answer came from two wordpress variables : WP_SITEURL and WP_HOME.

If the two variables are set , wordpress blog do not get them from the database.

Step 1.

Adding this code at top of  wp-config.php

/**
 * This code adds base url for wordpress site.
 * This means that it will work no matter the directory , 
 * if get_parmalink() is used.
 * @author Ivan Gospodinow
 * @site http://www.ivangospodinow.com
 * @mail ivangospodinow@gmail.com
 * @date 30.09.2012
 */
foreach(array('/wp-admin','/wp-content','/wp-includes') as $_folder){
	if(strpos($_SERVER['PHP_SELF'],$_folder) !== false){
		$_r = explode($_folder,$_SERVER['PHP_SELF']);
		$_path = $_r[0];
		break;
	}
}
if(!isset($_path)){
	$_r = strrpos($_SERVER['PHP_SELF'], '/');
	$_path = substr($_SERVER['PHP_SELF'], 0,$_r);
}
$_http = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https':'http').'://';
/**
 * WP variables
 */
define('WP_SITEURL',$_http.$_SERVER['HTTP_HOST'].$_path);
define('WP_HOME', WP_SITEURL);

unset($_path,$_r,$_http,$_folder);

This code will insure that WP_SITEURL and WP_HOME variables point to current wordpress directory.

Step 2.

Adding non directory .htaccess

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

# END WordPress

This code will insure that the .htaccess will work no matter the directory.

Step 3.

How to use this method ?

Install wordpress blog in folder ‘path_to_public_dir/dev/developer_1/project_name/’.

Do step 1 and step 2.

Copy project to folder ‘path_to_public_dir/dev/developer_2/project_name/’ or ‘path_to_public_dir/live/project_name/’.

 

Suggestions or problems ?

Write a comment.

tags: , , ,
posted in how to ?, Wordpress by Ivan Gospodinow

Follow comments via the RSS Feed | Leave a comment | Trackback URL

Leave Your Comment


Warning: Use of undefined constant XML - assumed 'XML' (this will throw an Error in a future version of PHP) in /home/c2kblate/sites/ivangospodinow.com/wp-content/plugins/wp-syntaxhighlighter/wp-syntaxhighlighter.php on line 1048
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org