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
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
# 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.