Blog

How to put a new version of a WP site live

If you already have a wordpress site live on a server, it can be a scary thought putting a new one live. Replacing the databases? Replacing the uploads and wp-content, the plugins. Argh!!

Step 1

  • Locally, duplicate the database and run a replace tool to swap your local url to the live url
  • Make a second database on the server
  • Upload the correct file

You now have 2 databases on the server, the old one, still running the site, and the new one sitting idly by.

Step 2

  • Create a new subdirectory and upload the whole Wordpress install into it
  • For the purposes of this I will assume that the subdirectory is called SUBDIRECTORY
  • Now, in the SUBDIRECTORY folder, open the wp-config.php file and update all the database details to be the same as the new database.

You now have all the files you need, ready to go, on the live server in a folder called SUBDIRECTORY, and you also have the database setup, however at present you aren’t using any of these things, the live site is still there.

Step 3 Connect the subdirectory to MySQL

  • Open PHPmyadmin and go to the new database
  • Open the wp_options table
  • Update JUST the siteurl to the correct directory of your files, for instance https://example.com/SUBDIRECTORY
  • Now edit the index.php file in the ROOT directory of the site
  • Replace the line similar to this to say:
    require( dirname( __FILE__ ) . '/SUBDIRECTORY/wp-blog-header.php' );

Did you mess it up?

Just put that last line in the index.php back to as it was (so remove SUBDIRECTORY/)

Regex find a whole plugin

Just put a comment before the beginning and end of the plugin, for instance: /* FITVIDSFITVIDSFITVIDSFITVIDS */

Then in Sublime text, find, switch on Regex and copy the following, replacing the two FITVIDSFITVIDSFITVIDSFITVIDS bits.

/\* FITVIDSFITVIDSFITVIDSFITVIDS \*/[\s\S]*/\* FITVIDSFITVIDSFITVIDSFITVIDS \*/

Laravel notes

I recently started using the fantastic Laravel for a number of PHP web projects.

Being from a Wordpress background the learning curve has been pretty steep – but I started writing down every problem I had and how I fixed it. You can find my 'research' here:

Laravel Notes

Eight Arms

I've recently started Eight Arms Ltd with my good friends Cheryl and Matt. Here's to the future!

Eight Arms

So if things are a little quiet here, check out what is going on there, instead.

djave.


Ends:

Splice doesn't work very well in a JavaScript for loop

That is all. Be careful.

var numbers = [1,2,3,4,5,6,7,8,9,10];
for(var i=0; i<numbers.length; i++){
  if(numbers[i] - 5 < 0){
    numbers.splice(i,1);
  }
}

console.log(numbers);
//Logs: [2, 4, 5, 6, 7, 8, 9, 10]

The problem is, when you splice inside a for loop, you're ruining the index that you're using to reference the other elements in the array. There are some really smart ways to get around this using jquery's $.grep function, but there's also a simpler way, assuming you don't need to do anything in an upward order - you can just reverse the for loop, using -- rather than ++.

Like so:

var numbers = [1,2,3,4,5,6,7,8,9,10];
for(i=numbers.length-1; i>=0;i--){
  if(numbers[i] - 5 < 0){
    numbers.splice(i,1);
  }
}

console.log(numbers);
//Logs: [5, 6, 7, 8, 9, 10] 

Because you start at the top, none of the values get upset when you start permanently deleting and shifting values across. Enjoy!


Ends: